summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/util/Exceptional.scala11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/util/Exceptional.scala b/src/compiler/scala/tools/nsc/util/Exceptional.scala
index d0c04ae4d9..54ef3606f1 100644
--- a/src/compiler/scala/tools/nsc/util/Exceptional.scala
+++ b/src/compiler/scala/tools/nsc/util/Exceptional.scala
@@ -1,6 +1,7 @@
package scala.tools.nsc
package util
+import java.util.concurrent.ExecutionException
import java.lang.reflect.{ InvocationTargetException, UndeclaredThrowableException }
import io.{ Sources, Fileish }
import scala.tools.util.StringOps._
@@ -117,7 +118,13 @@ object Exceptional {
case ex => x :: causes(ex)
}
def unwrap(x: Throwable): Throwable = x match {
- case _: InvocationTargetException | _: ExceptionInInitializerError | _: UndeclaredThrowableException if x.getCause != null => unwrap(x.getCause)
- case _ => x
+ case _: InvocationTargetException |
+ _: ExceptionInInitializerError |
+ _: UndeclaredThrowableException |
+ _: ExecutionException
+ if x.getCause != null =>
+ unwrap(x.getCause)
+
+ case _ => x
}
}