diff --git a/app/RunnerException.java b/app/RunnerException.java index 390d7ef80..200e9abdb 100644 --- a/app/RunnerException.java +++ b/app/RunnerException.java @@ -66,6 +66,8 @@ public class RunnerException extends Exception { * in each of the constructors above. */ static public final String massage(String msg) { + if (msg == null) + return ""; if (msg.indexOf("java.lang.") == 0) { //int dot = msg.lastIndexOf('.'); msg = msg.substring("java.lang.".length()); diff --git a/app/Sizer.java b/app/Sizer.java index deb837fa5..2b7091c96 100644 --- a/app/Sizer.java +++ b/app/Sizer.java @@ -72,7 +72,11 @@ public class Sizer implements MessageConsumer { } catch (InterruptedException intExc) { } } } catch (Exception e) { - exception = new RunnerException(e.toString()); + // The default Throwable.toString() never returns null, but apparently + // some sub-class has overridden it to do so, thus we need to check for + // it. See: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1166589459 + exception = new RunnerException( + (e.toString() == null) ? e.getClass().getName() : e.toString()); } if (exception != null)