Hi, everyone.
I have some frustrating news to report.
It seems that the newest release of Java,
which is insisted upon by Macs and PCs running newer OSs (such as OS X 10.9 Mavericks and W8),
breaks the Wonderland client launching.
If i understand correctly, jMonkeyEngine calls JOGL which invokes the OpenGL procedures built into the OS,
but something in the newest Java release (v. 1.7.0_55) doesn't align with OpenGL.
(In particular, the AWT [Advanced Windowing Toolkit], which had probably been deprecated,
to be superseded by Swing, is still used by parts of W'land, but the newest Java release finally removes those hooks.)
As i understand the situation, there are several issues:
Recent security holes in Java and in general have forced OSs to be paranoid, insisting on installation of newest versions of the JVM or JRE.
Some parts of W'land were built using AWT (such as the AppKit) instead of the newer Swing (which is used elsewhere in W'land).
There are complicated arrangements between various Java releases and various OS releases, including changing locations of installations.
At least on OS X, there are inconsistent interfaces for Java, including only sometimes-appearing Java Control Panels which show different installed versions than "java -version" does in a command line interface on the same computer.
Running the OWL client (which previously worked without problem) gave the following error on the Java Console.
(OWL client window opened but no content.)
May 24, 2014 11:29:02 AM com.jmex.awt.jogl.JOGLAWTCanvas reshape
INFO: reshape AWT-GLCanvas[Realized true,
jogamp.opengl.GLFBODrawableImpl,
Factory jogamp.opengl.macosx.cgl.awt.MacOSXAWTCGLDrawableFactory@5725238a,
handle 0x7fe9d9d64940,
Drawable size 320x320,
AWT pos 11/11, size 320x320,
visible true, displayable true,
AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type .awt, connection Display 69992768, unitID 0, awtDevice sun.awt.CGraphicsDevice@474065b8, handle 0x0], idx 0],
chosen GLCaps[rgba 0x8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/8/0, dbl, mono , hw, GLProfile[GL2/GL2.hw], offscr[fbo]],
requested GLCaps[rgba 0x8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/8/0, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]],
CGLGraphicsConfig[dev=69992768,pixfmt=0],
encapsulated MacOSXCGLGraphicsConfiguration[DefaultGraphicsScreen[MacOSXGraphicsDevice[type .macosx, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[]], idx 0],
chosen GLCaps[rgba 0x8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 24/8/0, dbl, mono , hw, GLProfile[GL2/GL2.hw], offscr[fbo]],
requested GLCaps[rgba 0x8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/8/0, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]]]]], 0, 0, 320, 320
May 24, 2014 11:29:02 AM com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
May 24, 2014 11:29:02 AM com.jme.renderer.AbstractCamera <init>
INFO: Camera created.
RunnableTask.run(): A catched exception occured on thread AWT-AppKit: RunnableTask[executed true, tTotal 5 ms, tExec 4 ms, tQueue 1 ms, attachment null, throwable java.lang.NullPointerException]
java.lang.NullPointerException
at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1012)
at sun.awt.SunToolkit.getSystemEventQueueImplPP(SunToolkit.java:1008)
at sun.awt.SunToolkit.getSystemEventQueueImpl(SunToolkit.java:1003)
at java.awt.Toolkit.getEventQueue(Toolkit.java:1730)
at java.awt.Component.repaint(Component.java:3386)
at java.awt.Component.repaint(Component.java:3286)
at com.jogamp.nativewindow.awt.JAWTWindow.attachSurfaceLayer(JAWTWindow.java:235)
at jogamp.opengl.macosx.cgl.MacOSXCGLContext$NSOpenGLImpl$AttachNSOpenGLLayer.run(MacOSXCGLContext.java:666)
at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:95)
So we tried to run the Test Client. No images (except the original) were loaded when testing graphics capabilities.
WARNING: Trying to draw to texture whose ID hasn't been allocated
Attaching EZClickMouseListener
* Primary window is null! *
* Candidate window! *
* Candidate view! *
* Candidate window! *
* Candidate view! *
2 XXX candidate views found!
SwingEventConsumer added.
SwingEventConsumer added.
May 24, 2014 11:16:26 AM org.jdesktop.wonderland.modules.EZClick.client.EZClickComponent setStatus
WARNING: Setting status on EZClickComponent to RENDERING
May 24, 2014 11:16:26 AM org.jdesktop.wonderland.modules.EZClick.client.EZClickComponent setStatus
WARNING: Setting status on EZClickComponent to VISIBLE
May 24, 2014 11:16:26 AM org.jdesktop.wonderland.client.cell.asset.AssetUtils getAssetURL
WARNING: Unable to find AssetURI object for
http://openwonderland.org/templates/wonderlandb/images/idy.pngMay 24, 2014 11:16:27 AM org.jdesktop.wonderland.client.cell.asset.AssetUtils getAssetURL
WARNING: Unable to find AssetURI object for
http://openwonderland.org/templates/wonderlandb/images/idy.pngMay 24, 2014 11:16:27 AM org.jdesktop.mtgame.Renderer processCommitList
WARNING: MTGame: Exception Caught in renderer commit: javax.media.opengl.GLException: Thread[MTGame Renderer,5,javawsApplicationThreadGroup] glGetError() returned the following error codes after a call to glTexSubImage2D(<int> 0xDE1, <int> 0x0, <int> 0x0, <int> 0x0, <int> 0x199, <int> 0x228, <int> 0x1908, <int> 0x1401, <java.nio.Buffer> java.nio.DirectByteBuffer[pos=0 lim=903072 cap=903072]): GL_INVALID_VALUE ( 1281 0x501),
javax.media.opengl.GLException: Thread[MTGame Renderer,5,javawsApplicationThreadGroup] glGetError() returned the following error codes after a call to glTexSubImage2D(<int> 0xDE1, <int> 0x0, <int> 0x0, <int> 0x0, <int> 0x199, <int> 0x228, <int> 0x1908, <int> 0x1401, <java.nio.Buffer> java.nio.DirectByteBuffer[pos=0 lim=903072 cap=903072]): GL_INVALID_VALUE ( 1281 0x501),
at javax.media.opengl.DebugGL2.checkGLGetError(DebugGL2.java:24811)
at javax.media.opengl.DebugGL2.glTexSubImage2D(DebugGL2.java:10396)
at com.jme.renderer.jogl.JOGLRenderer.updateTextureSubImage(JOGLRenderer.java:1993)
at com.jmex.awt.swingui.JOGLImageGraphics.update(JOGLImageGraphics.java:186)
at org.jdesktop.wonderland.modules.appbase.client.DrawingSurfaceImageGraphics$UpdateProcessor.commit(DrawingSurfaceImageGraphics.java:338)
at org.jdesktop.mtgame.Renderer.processCommitList(Renderer.java:1407)
at org.jdesktop.mtgame.Renderer.run(Renderer.java:960)
(Note that this is a different issue that that reported a couple of weeks ago by me on this forum
[and which we understand is being worked on by the W'land team],
as it applies to both Mac OS X and Windows platforms,
whereas the earlier-reported problem applied only to OS X.)
A work-around is to try to use an older OS (Snow Leopard 10.6, Lion 10.7, or Mountain Lion 10.8 on OS X; XP or W7 on Windows) that doesn't insist on the newest Java release.
Alternatively, one can try to uninstall Java 1.7 and install 1.6,
which still has the AWT hooks.
We have had decidedly mixed (only incomplete) success with such a technique,
which is also complicated because of the blurring of the distinction between the JVM and JRE,
and the need to use ant to launch instead of Java Web Start.
This is all eye-glazingly tangled, especially in our lab where we have a variety of computers, OSs, and Java installations.
("Write once, break everywhere.")
We hope that a simpler and more reliable solution will emerge from the W'land developers,
maybe recoding the AWT invocations as Swing equivalents.