diff --git a/common/utils/src/main/scala/org/apache/spark/util/JsonUtils.scala b/common/utils/src/main/scala/org/apache/spark/util/JsonUtils.scala index b3a8f7c3c1036..2220484b6e115 100644 --- a/common/utils/src/main/scala/org/apache/spark/util/JsonUtils.scala +++ b/common/utils/src/main/scala/org/apache/spark/util/JsonUtils.scala @@ -31,19 +31,11 @@ private[spark] trait JsonUtils { .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) def toJsonString(block: JsonGenerator => Unit): String = { - var baos: ByteArrayOutputStream = null - var generator: JsonGenerator = null - try { - baos = new ByteArrayOutputStream() - generator = mapper.createGenerator(baos, JsonEncoding.UTF8) - block(generator) - new String(baos.toByteArray, StandardCharsets.UTF_8) - } finally { - if (generator != null) { - generator.close() - } - if (baos != null) { - baos.close() + val baos: ByteArrayOutputStream = new ByteArrayOutputStream() + SparkErrorUtils.tryWithResource(mapper.createGenerator(baos, JsonEncoding.UTF8)) { + generator => { + block(generator) + new String(baos.toByteArray, StandardCharsets.UTF_8) } } }