more error checking around package changes in 3.0

This commit is contained in:
Ben Fry
2015-07-14 12:10:23 -04:00
parent 5e82cbe636
commit dde3bcb4ab
5 changed files with 23 additions and 11 deletions
@@ -134,11 +134,11 @@ public class ModeContribution extends LocalContribution {
try {
contribModes.add(new ModeContribution(base, folder, null));
} catch (NoSuchMethodError nsme) {
System.err.println(folder.getName() + " contains an incompatible Mode");
System.err.println(nsme.getMessage());
System.err.println(folder.getName() + " is not compatible with this version of Processing");
// System.err.println(nsme.getMessage());
} catch (NoClassDefFoundError ncdfe) {
System.err.println(folder.getName() + " contains an incompatible Mode");
System.err.println(ncdfe.getMessage());
System.err.println(folder.getName() + " is not compatible with this version of Processing");
// System.err.println(ncdfe.getMessage());
} catch (IgnorableException ig) {
Base.log(ig.getMessage());
} catch (Throwable e) {
@@ -46,6 +46,11 @@ public class ToolContribution extends LocalContribution implements Tool {
} catch (VerifyError ve) { // incompatible
// avoid the excessive error spew that happens here
} catch (NoClassDefFoundError ncdfe) {
if (ncdfe.getMessage().contains("processing/app/Editor")) {
System.err.println("The Editor class has moved to the processing.app.ui package in Processing 3");
}
} catch (Throwable e) { // unknown error
e.printStackTrace();
}
@@ -105,7 +110,7 @@ public class ToolContribution extends LocalContribution implements Tool {
// }
static public ArrayList<ToolContribution> loadAll(File toolsFolder) {
static public List<ToolContribution> loadAll(File toolsFolder) {
File[] list = ContributionType.TOOL.listCandidates(toolsFolder);
ArrayList<ToolContribution> outgoing = new ArrayList<ToolContribution>();
// If toolsFolder does not exist or is inaccessible (stranger things have
+5
View File
@@ -1288,6 +1288,11 @@ public abstract class Editor extends JFrame implements RunnerListener {
System.err.println("The " + ncdfe.getMessage() + " class is no longer available.");
Base.loge("Incompatible Tool found during tool.init()", ncdfe);
} catch (AbstractMethodError ame) {
System.err.println("\"" + tool.getMenuTitle() + "\" is not " +
"compatible with this version of Processing");
// ame.printStackTrace();
} catch (Error err) {
System.err.println("An error occurred inside \"" + tool.getMenuTitle() + "\"");
err.printStackTrace();
+1 -6
View File
@@ -48,6 +48,7 @@ X https://github.com/processing/processing/issues/3417
X change how font metrics are pulled to fix text width issues
X check alpha when image extension is "unknown"
X https://github.com/processing/processing/issues/3442
X add support for more Image types (BGR) with PImage(java.awt.Image) constructor
threading headaches
X sketch not always showing with empty draw()
@@ -133,12 +134,6 @@ _ on Export to Application, this has an impact
_ update wiki/docs to say "don't override sketchXxxx() methods"
_ change "PythonMode contains an incompatible Mode" message
_ to "PythonMode is not compatible with Processing 3"
_ another "incompatible tool" case
java.lang.AbstractMethodError
at processing.app.contrib.ToolContribution.init(ToolContribution.java:134)
beta
X move Java2D and JavaFX classes to their own packages
_ make notes about this in the README
+7
View File
@@ -18,6 +18,12 @@ X https://github.com/processing/processing/issues/3394
X Tweak mode broken (re: new settings() function)
X https://github.com/processing/processing/issues/3435
X looks like 'class' def from tweak needs to go below setup
X change "PythonMode contains an incompatible Mode" message
X to "PythonMode is not compatible with Processing 3"
X another "incompatible tool" case
X java.lang.AbstractMethodError
X at processing.app.contrib.ToolContribution.init(ToolContribution.java:134)
X unfortunately happens at a level where we can only println about it
manager
X changed compatibleModesList to modes in examples.properties
@@ -83,6 +89,7 @@ contribs pending
_ Ready to add contributed example packages?
_ https://github.com/processing/processing/issues/2953
beta
_ make modes load their parent class
_ https://github.com/processing/processing/issues/3443