diff --git a/app/src/processing/app/contrib/ModeContribution.java b/app/src/processing/app/contrib/ModeContribution.java index 9ed1c2672..bcc0b4b0d 100644 --- a/app/src/processing/app/contrib/ModeContribution.java +++ b/app/src/processing/app/contrib/ModeContribution.java @@ -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) { diff --git a/app/src/processing/app/contrib/ToolContribution.java b/app/src/processing/app/contrib/ToolContribution.java index 4e6dbb764..f5d5479a1 100644 --- a/app/src/processing/app/contrib/ToolContribution.java +++ b/app/src/processing/app/contrib/ToolContribution.java @@ -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 loadAll(File toolsFolder) { + static public List loadAll(File toolsFolder) { File[] list = ContributionType.TOOL.listCandidates(toolsFolder); ArrayList outgoing = new ArrayList(); // If toolsFolder does not exist or is inaccessible (stranger things have diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index 5eb732df8..b318e51d7 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -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(); diff --git a/core/todo.txt b/core/todo.txt index fde528788..b52e7d504 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -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 diff --git a/todo.txt b/todo.txt index c6e3b0b5c..6ae0f9424 100644 --- a/todo.txt +++ b/todo.txt @@ -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