From 57d0ef4369a6641a7615d6cc66eeadc6e47d80c4 Mon Sep 17 00:00:00 2001 From: Andrew Or Date: Mon, 27 Apr 2015 22:41:16 -0700 Subject: [PATCH 1/2] try catch improveException --- .../spark/serializer/SerializationDebugger.scala | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala b/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala index cecb992579655..cbcde35f5126c 100644 --- a/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala +++ b/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala @@ -35,8 +35,15 @@ private[serializer] object SerializationDebugger extends Logging { */ def improveException(obj: Any, e: NotSerializableException): NotSerializableException = { if (enableDebugging && reflect != null) { - new NotSerializableException( - e.getMessage + "\nSerialization stack:\n" + find(obj).map("\t- " + _).mkString("\n")) + try { + new NotSerializableException( + e.getMessage + "\nSerialization stack:\n" + find(obj).map("\t- " + _).mkString("\n")) + } catch { + case e2: Exception => + // Fall back to old exception + logWarning("Exception in serialization debugger", e2) + e + } } else { e } From e8aad6c5a49b032a0c066109d975ec4ccf4a0079 Mon Sep 17 00:00:00 2001 From: Andrew Or Date: Mon, 27 Apr 2015 23:13:51 -0700 Subject: [PATCH 2/2] NonFatal --- .../org/apache/spark/serializer/SerializationDebugger.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala b/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala index cbcde35f5126c..5abfa467c0ec8 100644 --- a/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala +++ b/core/src/main/scala/org/apache/spark/serializer/SerializationDebugger.scala @@ -23,6 +23,7 @@ import java.security.AccessController import scala.annotation.tailrec import scala.collection.mutable +import scala.util.control.NonFatal import org.apache.spark.Logging @@ -39,9 +40,9 @@ private[serializer] object SerializationDebugger extends Logging { new NotSerializableException( e.getMessage + "\nSerialization stack:\n" + find(obj).map("\t- " + _).mkString("\n")) } catch { - case e2: Exception => + case NonFatal(t) => // Fall back to old exception - logWarning("Exception in serialization debugger", e2) + logWarning("Exception in serialization debugger", t) e } } else {