Bug 1452 : NullPointerException in JOGLAppletLanucher with Java 6 Update 18 on Windows
Last modified: 2010-02-03 06:12



Assigned To:

Attachment Type Created Size Actions

Description:   Opened: 2010-02-02 12:02
Ever since I upgraded to Java 6_18, I get this stack trace (and an error
message in the applet window) whenever I try to view certain OpenGL
exported applets:

sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NullPointerException


Additional Comment #1 From fry 2010-02-02 12:38
Looks like those are using the expired certificates from the older JOGL
version. I wonder if update 18 got finicky about expired certs.

To eliminate some variables, have you tried re-exporting with 1.0.9 to see
if they work there? (And whether the certificate issue is fixed on export?)
Additional Comment #2 From MrFeinberg 2010-02-02 14:48

was exported from 1.0.9, and exhibits the same problem.
Additional Comment #3 From fry 2010-02-02 15:10
nuts, why can't it be the easy thing...

if i'm looking at the right source, it's complaining about this line in

String installDirName = userHome + File.separator + ".jogl_ext" +
File.separator + installDirectory + File.separator +
p.getImplementationVersion().replace(':', '_');

and if i read correctly, either p is null, or the result of
getImplementationVersion() is null. i'll do some further digging. my guess
at the moment is that something might be missing from the html parameters
in the exported applets, that update 18 has decided to be pedantic about.
Additional Comment #4 From fry 2010-02-02 15:10
More information from someone else who is having trouble:
Additional Comment #5 From yelele.eu 2010-02-02 16:39
Is the same bug or another one ?
After generate Applet from an OPENGL sketch, it didn't run and the 1.6.0_017 JRE
console says :

Exception in thread "Animation Thread" java.lang.NoClassDefFoundError: Could not
initialize class com.sun.opengl.impl.windows.WindowsGLDrawableFactory
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at javax.media.opengl.GLDrawableFactory.getFactory
at processing.opengl.PGraphicsOpenGL.allocate
at processing.core.PGraphics3D.setSize(PGraphics3D.java:316)
at processing.core.PApplet.makeGraphics(PApplet.java:1164)
at processing.core.PApplet.size(PApplet.java:998)
at processing.core.PApplet.size(PApplet.java:958)
at glow01.setup(glow01.java:57)
at processing.core.PApplet.handleDraw(PApplet.java:1402)
at processing.core.PApplet.run(PApplet.java:1327)
at java.lang.Thread.run(Unknown Source)

Windows Vista premium
IE 7.0.6
JRE 1.6.0_017
Processing 1.0.9
Additional Comment #6 From MrFeinberg 2010-02-02 19:01
I wonder if it's time to abandon the JOGL applet launcher technique
entirely, and instead move to the JNLPAppletLauncher for JOGL applets?

See https://jogl-demos.dev.java.net/applettest.html for a demo.
Additional Comment #7 From fry 2010-02-03 06:02
for comment #5, that's probably a different issue.

re: comment #6, the JNLP launcher is a great idea. I'd avoided it in the
past because I thought it required a pop-out window. But I've just modified
this for the next release and it seems to fix the problem.

So the fix is in SVN, so you can either build from there, or it's only two
changes: build/shared/lib/export/applet-opengl.html needs to go in the
lib/export folder of the processing application; and
build/opengl/library/export.txt needs to replace the export.txt file found
in your libraries/opengl/library folder.
Additional Comment #8 From MrFeinberg 2010-02-03 06:12
That's great.

Maybe you could put together a special-purpose page (or FAQ) that describes
how to repair existing JOGL-applet deployments?