From b523ecbef727df73b3b018eb851fb66981e98770 Mon Sep 17 00:00:00 2001 From: DjvuLee Date: Mon, 28 Aug 2017 15:00:56 +0800 Subject: [PATCH] [SPARK-21849][Core]Make the serializer function more robust --- .../scala/org/apache/spark/serializer/JavaSerializer.scala | 7 +++++-- core/src/main/scala/org/apache/spark/util/Utils.scala | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/serializer/JavaSerializer.scala b/core/src/main/scala/org/apache/spark/serializer/JavaSerializer.scala index f60dcfddfdc2..3ef8425b5e77 100644 --- a/core/src/main/scala/org/apache/spark/serializer/JavaSerializer.scala +++ b/core/src/main/scala/org/apache/spark/serializer/JavaSerializer.scala @@ -97,8 +97,11 @@ private[spark] class JavaSerializerInstance( override def serialize[T: ClassTag](t: T): ByteBuffer = { val bos = new ByteBufferOutputStream() val out = serializeStream(bos) - out.writeObject(t) - out.close() + try { + out.writeObject(t) + } finally { + out.close() + } bos.toByteBuffer } diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala index 3dce76c2c96b..6cc33746ddcd 100644 --- a/core/src/main/scala/org/apache/spark/util/Utils.scala +++ b/core/src/main/scala/org/apache/spark/util/Utils.scala @@ -138,8 +138,11 @@ private[spark] object Utils extends Logging { def serialize[T](o: T): Array[Byte] = { val bos = new ByteArrayOutputStream() val oos = new ObjectOutputStream(bos) - oos.writeObject(o) - oos.close() + try { + oos.writeObject(o) + } finally { + oos.close() + } bos.toByteArray }