=rem Don't try to serializa null file names in stack traces #21772

This commit is contained in:
Björn Antonsson 2016-10-31 16:14:34 +01:00
parent d2552128cb
commit 2080c08e36

View file

@ -39,11 +39,12 @@ private[akka] class ThrowableSupport(system: ExtendedActorSystem) {
}
def stackTraceElementBuilder(elem: StackTraceElement): ContainerFormats.StackTraceElement.Builder = {
ContainerFormats.StackTraceElement.newBuilder()
val builder = ContainerFormats.StackTraceElement.newBuilder()
.setClassName(elem.getClassName)
.setMethodName(elem.getMethodName)
.setFileName(elem.getFileName)
.setLineNumber(elem.getLineNumber)
val fileName = elem.getFileName
if (fileName ne null) builder.setFileName(fileName) else builder.setFileName("")
}
def deserializeThrowable(bytes: Array[Byte]): Throwable = {
@ -71,7 +72,9 @@ private[akka] class ThrowableSupport(system: ExtendedActorSystem) {
import scala.collection.JavaConverters._
val stackTrace =
protoT.getStackTraceList.asScala.map { elem
new StackTraceElement(elem.getClassName, elem.getMethodName, elem.getFileName, elem.getLineNumber)
val fileName = elem.getFileName
new StackTraceElement(elem.getClassName, elem.getMethodName,
if (fileName.length > 0) fileName else null, elem.getLineNumber)
}.toArray
t.setStackTrace(stackTrace)
t