-
Bug
-
Resolution: Unresolved
-
P3
-
None
-
6
-
Cause Known
-
generic
-
generic
Attached is an application which fails to launch under 1.6 but
launched fine under 1.5 :
>>>>
java16 -jar PracticeTools.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
at/ofai/music/plot/WormPlot
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethod(Class.java:1935)
at
java.awt.Component.isCoalesceEventsOverriden(Component.java:5723)
at
java.awt.Component.isCoalesceEventsOverriden(Component.java:5712)
at java.awt.Component.access$100(Component.java:162)
at java.awt.Component$2.run(Component.java:5677)
at java.awt.Component$2.run(Component.java:5675)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Component.checkCoalescing(Component.java:5674)
at java.awt.Component.<init>(Component.java:5643)
at java.awt.Container.<init>(Container.java:245)
at java.awt.Window.<init>(Window.java:405)
at java.awt.Frame.<init>(Frame.java:402)
at java.awt.Frame.<init>(Frame.java:367)
at javax.swing.JFrame.<init>(JFrame.java:163)
at at.ofai.music.plot.Figure.<init>(Figure.java:100)
at at.ofai.music.midisp.PracticeTools.<init>(PracticeTools.java:81)
at at.ofai.music.midisp.PracticeTools.main(PracticeTools.java:437)
<<<<
It appears that several things contribute to this :
1. In 1.6 AWT now executes this code :
final Class<? extends Component> clazz = getClass();
clazz.getDeclaredMethod(
"coalesceEvents", coalesceEventsParams
);
2. It appears that the implementation of getDeclaredMethod()
in fact gets all methods and attempts to resolve all referenced classes.
3. at/ofai/music/plot/WormPlot is not in the jar file.
4. getDeclaredMethod() does not document that it might throw
NoClassDefFoundError.
launched fine under 1.5 :
>>>>
java16 -jar PracticeTools.jar
Exception in thread "main" java.lang.NoClassDefFoundError:
at/ofai/music/plot/WormPlot
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethod(Class.java:1935)
at
java.awt.Component.isCoalesceEventsOverriden(Component.java:5723)
at
java.awt.Component.isCoalesceEventsOverriden(Component.java:5712)
at java.awt.Component.access$100(Component.java:162)
at java.awt.Component$2.run(Component.java:5677)
at java.awt.Component$2.run(Component.java:5675)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Component.checkCoalescing(Component.java:5674)
at java.awt.Component.<init>(Component.java:5643)
at java.awt.Container.<init>(Container.java:245)
at java.awt.Window.<init>(Window.java:405)
at java.awt.Frame.<init>(Frame.java:402)
at java.awt.Frame.<init>(Frame.java:367)
at javax.swing.JFrame.<init>(JFrame.java:163)
at at.ofai.music.plot.Figure.<init>(Figure.java:100)
at at.ofai.music.midisp.PracticeTools.<init>(PracticeTools.java:81)
at at.ofai.music.midisp.PracticeTools.main(PracticeTools.java:437)
<<<<
It appears that several things contribute to this :
1. In 1.6 AWT now executes this code :
final Class<? extends Component> clazz = getClass();
clazz.getDeclaredMethod(
"coalesceEvents", coalesceEventsParams
);
2. It appears that the implementation of getDeclaredMethod()
in fact gets all methods and attempts to resolve all referenced classes.
3. at/ofai/music/plot/WormPlot is not in the jar file.
4. getDeclaredMethod() does not document that it might throw
NoClassDefFoundError.