diff --git a/project/Sbt.scala b/project/Sbt.scala index 6e79405e7..91008ded3 100644 --- a/project/Sbt.scala +++ b/project/Sbt.scala @@ -137,7 +137,8 @@ object Sbt extends Build val loader = classpath.ClasspathUtilities.toLoader(scriptedSbtClasspath.files, scriptedSbtInstance.loader) val m = ModuleUtilities.getObject("sbt.test.ScriptedTests", loader) val r = m.getClass.getMethod("run", classOf[File], classOf[Boolean], classOf[String], classOf[String], classOf[String], classOf[Array[String]], classOf[File]) - r.invoke(m, sourcePath, true: java.lang.Boolean, v, sv, ssv, args.toArray[String], launcher) + try { r.invoke(m, sourcePath, true: java.lang.Boolean, v, sv, ssv, args.toArray[String], launcher) } + catch { case ite: java.lang.reflect.InvocationTargetException => throw ite.getCause } } } diff --git a/scripted/sbt/ScriptedTests.scala b/scripted/sbt/ScriptedTests.scala index 62741dc57..7fd0e4200 100644 --- a/scripted/sbt/ScriptedTests.scala +++ b/scripted/sbt/ScriptedTests.scala @@ -66,10 +66,11 @@ final class ScriptedTests(resourceBaseDirectory: File, bufferLog: Boolean, sbtVe case e: xsbt.test.TestException => buffered.stop() buffered.error("x " + label) - if(e.getCause eq null) - buffered.error(" " + e.getMessage) - else - e.printStackTrace + e.getCause match + { + case null | _: java.net.SocketException => buffered.error(" " + e.getMessage) + case _ => e.printStackTrace + } throw e case e: Exception => buffered.stop()