New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.x Modes, Tools, and Libraries will need to be updated for 3.x #3080

Closed
GKFX opened this Issue Feb 3, 2015 · 11 comments

Comments

Projects
None yet
4 participants
@GKFX
Contributor

GKFX commented Feb 3, 2015

Produced when calling build/linux/work/processing at the command line. This does not seem to cause any actual problem, but just indicates needed clean-up (you might already be aware of it).

java.lang.NoClassDefFoundError: processing/mode/java/JavaMode
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at processing.app.contrib.ModeContribution.<init>(ModeContribution.java:79)
    at processing.app.contrib.ModeContribution.loadMissing(ModeContribution.java:127)
    at processing.app.Base.rebuildContribModes(Base.java:315)
    at processing.app.Base.<init>(Base.java:358)
    at processing.app.Base.createAndShowGUI(Base.java:208)
    at processing.app.Base.access$0(Base.java:148)
    at processing.app.Base$1.run(Base.java:142)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: processing.mode.java.JavaMode
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 32 more
java.lang.NoClassDefFoundError: processing/mode/java/JavaMode
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at processing.app.contrib.ModeContribution.<init>(ModeContribution.java:79)
    at processing.app.contrib.ModeContribution.loadMissing(ModeContribution.java:127)
    at processing.app.Base.rebuildContribModes(Base.java:315)
    at processing.app.Base.<init>(Base.java:358)
    at processing.app.Base.createAndShowGUI(Base.java:208)
    at processing.app.Base.access$0(Base.java:148)
    at processing.app.Base$1.run(Base.java:142)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: processing.mode.java.JavaMode
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 32 more
@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Feb 4, 2015

Member

That looks like you have an incompatible Mode installed (i.e. the old XQMode, DebugMode, PDE X, JavaScript, etc). Because of the fairly drastic changes, this next release is where Modes will break.

Member

benfry commented Feb 4, 2015

That looks like you have an incompatible Mode installed (i.e. the old XQMode, DebugMode, PDE X, JavaScript, etc). Because of the fairly drastic changes, this next release is where Modes will break.

@GKFX

This comment has been minimized.

Show comment
Hide comment
@GKFX

GKFX Feb 6, 2015

Contributor

You are right, Ben – deleting the old modes fixed it.
Should we be automatically cleaning the old modes off the users' machines? It doesn't seem possible for a user to do it from the GUI: the old modes don't appear in the modes dialog. (I just deleted/moved their folders manually.) That said, it'll be a pain for a user who wants v2 and v3 installed on the same machine to have v3 deleting v2's modes.

Contributor

GKFX commented Feb 6, 2015

You are right, Ben – deleting the old modes fixed it.
Should we be automatically cleaning the old modes off the users' machines? It doesn't seem possible for a user to do it from the GUI: the old modes don't appear in the modes dialog. (I just deleted/moved their folders manually.) That said, it'll be a pain for a user who wants v2 and v3 installed on the same machine to have v3 deleting v2's modes.

@GKFX GKFX changed the title from Bunch of Exceptions now v2 mode is gone. to What to do about old modes? Feb 6, 2015

@GKFX

This comment has been minimized.

Show comment
Hide comment
@GKFX

GKFX Feb 6, 2015

Contributor

Personally, I think we should just ensure that all modes on the machine appear in the dialog, and that the old ones have "incompatible" marked on them. It would probably be straightforward to do, and wouldn't cause any user any hassle.

Contributor

GKFX commented Feb 6, 2015

Personally, I think we should just ensure that all modes on the machine appear in the dialog, and that the old ones have "incompatible" marked on them. It would probably be straightforward to do, and wouldn't cause any user any hassle.

@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Feb 12, 2015

Member

Contributions in 2.x and 3.x are split to avoid this issue, the problem is that we're in a nasty in-between state while I'm breaking things and we don't have a release with "final" API for 3.x that Mode writers can update to.

Suffice to say, plans are in place to solve it for beta/final releases of 3.x (i.e. using a different sketchbook, automatically disabling if need be, who knows), we're just in a fairly broken spot at the moment.

Member

benfry commented Feb 12, 2015

Contributions in 2.x and 3.x are split to avoid this issue, the problem is that we're in a nasty in-between state while I'm breaking things and we don't have a release with "final" API for 3.x that Mode writers can update to.

Suffice to say, plans are in place to solve it for beta/final releases of 3.x (i.e. using a different sketchbook, automatically disabling if need be, who knows), we're just in a fairly broken spot at the moment.

@benfry benfry changed the title from What to do about old modes? to 2.x Modes will need to be patched for 3.x Feb 12, 2015

@benfry benfry changed the title from 2.x Modes will need to be patched for 3.x to 2.x Modes, Tools, and some Libraries will need to be patched for 3.x May 12, 2015

@benfry benfry changed the title from 2.x Modes, Tools, and some Libraries will need to be patched for 3.x to 2.x Modes, Tools, and Libraries will need to be patched for 3.x May 12, 2015

@benfry benfry changed the title from 2.x Modes, Tools, and Libraries will need to be patched for 3.x to 2.x Modes, Tools, and Libraries will need to be updated for 3.x Jun 8, 2015

@joelmoniz

This comment has been minimized.

Show comment
Hide comment
@joelmoniz

joelmoniz Jun 8, 2015

Member

A tiny little update on this issue: @Manindra29 and I have managed to determine the exact cause of this error, and the set of changes that need to be made to avoid this issue. The issue can be resolved without any changes to the PDE, but with changes only to the modes themselves. Of course, this is only for the Template Mode (for which I've submitted a PR here), although I'm hoping that the changes required for most other modes will be along these lines, without too much extra effort.

Member

joelmoniz commented Jun 8, 2015

A tiny little update on this issue: @Manindra29 and I have managed to determine the exact cause of this error, and the set of changes that need to be made to avoid this issue. The issue can be resolved without any changes to the PDE, but with changes only to the modes themselves. Of course, this is only for the Template Mode (for which I've submitted a PR here), although I'm hoping that the changes required for most other modes will be along these lines, without too much extra effort.

@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Jun 8, 2015

Member

Added a better error message for this for the next release (alpha 10 or beta 1, whichever it happens to be).

Member

benfry commented Jun 8, 2015

Added a better error message for this for the next release (alpha 10 or beta 1, whichever it happens to be).

@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Jun 16, 2015

Member

@joelmoniz Probably better to start a 3.0 mode template as a foundation repo, with the help of @prisonerjohn

Member

benfry commented Jun 16, 2015

@joelmoniz Probably better to start a 3.0 mode template as a foundation repo, with the help of @prisonerjohn

@joelmoniz

This comment has been minimized.

Show comment
Hide comment
@joelmoniz

joelmoniz Jun 16, 2015

Member

Sure, I'd love to help out!

Member

joelmoniz commented Jun 16, 2015

Sure, I'd love to help out!

@Munzey

This comment has been minimized.

Show comment
Hide comment
@Munzey

Munzey Jul 5, 2015

Im getting this error with the 3.0alpha build (running on Ubuntu 14) after installing a contributed tool. For example, after installing Color Selector Plus and restarting the pde:

An error occurred inside "Color Selector Plus"
java.lang.AbstractMethodError
    at processing.app.contrib.ToolContribution.init(ToolContribution.java:134)
    at processing.app.ui.Editor.addTools(Editor.java:1265)
    at processing.app.ui.Editor.rebuildToolMenu(Editor.java:1175)
    at processing.app.ui.Editor.buildMenuBar(Editor.java:747)
    at processing.app.ui.Editor.<init>(Editor.java:203)
    at processing.mode.java.JavaEditor.<init>(JavaEditor.java:107)
    at processing.mode.java.JavaMode.createEditor(JavaMode.java:44)
    at processing.app.Base.handleOpen(Base.java:833)
    at processing.app.Base.handleOpen(Base.java:784)
    at processing.app.Base.handleNew(Base.java:663)
    at processing.app.Base.<init>(Base.java:429)
    at processing.app.Base.createAndShowGUI(Base.java:225)
    at processing.app.Base.access$0(Base.java:165)
    at processing.app.Base$1.run(Base.java:154)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

the pde still works fine, but obviously the installed tool is missing from the tool bar.

Munzey commented Jul 5, 2015

Im getting this error with the 3.0alpha build (running on Ubuntu 14) after installing a contributed tool. For example, after installing Color Selector Plus and restarting the pde:

An error occurred inside "Color Selector Plus"
java.lang.AbstractMethodError
    at processing.app.contrib.ToolContribution.init(ToolContribution.java:134)
    at processing.app.ui.Editor.addTools(Editor.java:1265)
    at processing.app.ui.Editor.rebuildToolMenu(Editor.java:1175)
    at processing.app.ui.Editor.buildMenuBar(Editor.java:747)
    at processing.app.ui.Editor.<init>(Editor.java:203)
    at processing.mode.java.JavaEditor.<init>(JavaEditor.java:107)
    at processing.mode.java.JavaMode.createEditor(JavaMode.java:44)
    at processing.app.Base.handleOpen(Base.java:833)
    at processing.app.Base.handleOpen(Base.java:784)
    at processing.app.Base.handleNew(Base.java:663)
    at processing.app.Base.<init>(Base.java:429)
    at processing.app.Base.createAndShowGUI(Base.java:225)
    at processing.app.Base.access$0(Base.java:165)
    at processing.app.Base$1.run(Base.java:154)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

the pde still works fine, but obviously the installed tool is missing from the tool bar.

@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Jul 10, 2015

Member

@Munzey Exactly. Just like the topic of this page says, the Tool you're trying to use needs to be updated for 3.0.

Member

benfry commented Jul 10, 2015

@Munzey Exactly. Just like the topic of this page says, the Tool you're trying to use needs to be updated for 3.0.

@benfry

This comment has been minimized.

Show comment
Hide comment
@benfry

benfry Aug 5, 2015

Member

Documentation is now at the end of this page https://github.com/processing/processing/wiki/Changes-in-3.0 and will continue to be expanded as we find the time.

(Closing/locking this issue because it's not a bug.)

Member

benfry commented Aug 5, 2015

Documentation is now at the end of this page https://github.com/processing/processing/wiki/Changes-in-3.0 and will continue to be expanded as we find the time.

(Closing/locking this issue because it's not a bug.)

@benfry benfry closed this Aug 5, 2015

@processing processing locked and limited conversation to collaborators Aug 5, 2015

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.