diff --git a/app/.classpath b/app/.classpath index 6fad01c59..77e975316 100644 --- a/app/.classpath +++ b/app/.classpath @@ -21,9 +21,5 @@ - - - - diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 4d911bd92..9197e43bf 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -277,15 +277,19 @@ public class Base { ModeContribution.load(this, getContentFile("modes/javascript"), "processing.mode.javascript.JavaScriptMode").getMode(); - if (true) { - coreModes = new Mode[] { javaMode, androidMode, javaScriptMode }; + coreModes = new Mode[] { javaMode, androidMode, javaScriptMode }; - } else { - Mode debugMode = - ModeContribution.load(this, getContentFile("modes/java2"), - "processing.mode.java2.DebugMode").getMode(); - coreModes = new Mode[] { javaMode, androidMode, javaScriptMode, debugMode }; + // check for the new mode in case it's available +// try { +// Class.forName("processing.mode.java2.DebugMode"); + ModeContribution experimentalContrib = + ModeContribution.load(this, getContentFile("modes/java2"), + "processing.mode.java2.DebugMode"); + if (experimentalContrib != null) { + Mode experimentalMode = experimentalContrib.getMode(); + coreModes = new Mode[] { javaMode, androidMode, javaScriptMode, experimentalMode }; } +// } catch (ClassNotFoundException e) { } // for (Mode mode : coreModes) { // already called by load() above // mode.setupGUI(); diff --git a/app/src/processing/app/contrib/ModeContribution.java b/app/src/processing/app/contrib/ModeContribution.java index 488ec86e2..072c6c9cb 100644 --- a/app/src/processing/app/contrib/ModeContribution.java +++ b/app/src/processing/app/contrib/ModeContribution.java @@ -68,13 +68,21 @@ public class ModeContribution extends InstalledContribution { // static public ModeContribution load(Base base, File folder, String searchName) { - static public ModeContribution load(Base base, File folder, String searchName) { + static public ModeContribution load(Base base, File folder, + String searchName) { try { return new ModeContribution(base, folder, searchName); } catch (IgnorableException ig) { Base.log(ig.getMessage()); } catch (Exception e) { - e.printStackTrace(); + if (searchName == null) { + e.printStackTrace(); + } else { + // For the built-in modes, don't print the exception, just log it + // for debugging. This should be impossible for most users to reach, + // but it helps us load experimental mode when it's available. + Base.log("ModeContribution.load() failed for " + searchName, e); + } } return null; }