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;
}