diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 68ced5a9c..c76752684 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1520,7 +1520,13 @@ public class Base { static public Map getBoardPreferences() { - return getTarget().getBoards().get(Preferences.get("board")); + Target target = getTarget(); + if (target == null) return new LinkedHashMap(); + Map map = target.getBoards(); + if (map == null) return new LinkedHashMap(); + map = (Map) map.get(Preferences.get("board")); + if (map == null) return new LinkedHashMap(); + return map; } diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index ed951fa67..c6a9d769f 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -1574,7 +1574,9 @@ public class Sketch { protected void size(String buildPath, String suggestedClassName) throws RunnerException { long size = 0; - long maxsize = Integer.parseInt(Base.getBoardPreferences().get("upload.maximum_size")); + String maxsizeString = Base.getBoardPreferences().get("upload.maximum_size"); + if (maxsizeString == null) return; + long maxsize = Integer.parseInt(maxsizeString); Sizer sizer = new Sizer(buildPath, suggestedClassName); try { size = sizer.computeSize(); diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index d3ca66ea2..a4d80aa6c 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -73,6 +73,11 @@ public class Compiler implements MessageConsumer { String avrBasePath = Base.getAvrBasePath(); Map boardPreferences = Base.getBoardPreferences(); String core = boardPreferences.get("build.core"); + if (core == null) { + RunnerException re = new RunnerException("No board selected; please choose a board from the Tools > Board menu."); + re.hideStackTrace(); + throw re; + } String corePath; if (core.indexOf(':') == -1) {