Error - Please port CPU detection (32/64 bit) to your platform (mac os x/x86_64)

I get a strange new error trying to run a JOGL app on Mac OS 10.5 with Java 6. (Mac Pro, dual screen, nVidia gfx)

The main interesting part is this:
Caused by: java.lang.RuntimeException: Please port CPU detection (32/64 bit) to your platform (mac os x/x86_64)
at com.sun.gluegen.runtime.CPU.(CPU.java:72)

The frame pops up but it is empty of the JOGL canvas that was once there.
I get this with the latest release and the nightly build. I am doing development for Project Wonderland and this effectively stopped my development (at least on my main dev machine).

Thanks for any help!

init:
deps-jar:
compile:
run:
Current Directory: /Volumes/Untitled RAID Set 1/work/Projects/Avatars
Exception in thread “AWT-EventQueue-0” java.lang.ExceptionInInitializerError
at com.sun.opengl.impl.JAWT.size(JAWT.java:17)
at com.sun.opengl.impl.JAWT.create(JAWT.java:25)
at com.sun.opengl.impl.JAWT$1.run(JAWT.java:97)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.opengl.impl.JAWT.getJAWT(JAWT.java:95)
at com.sun.opengl.impl.macosx.MacOSXOnscreenGLDrawable.lockSurface(MacOSXOnscreenGLDrawable.java:144)
at com.sun.opengl.impl.macosx.MacOSXOnscreenGLContext.makeCurrentImpl(MacOSXOnscreenGLContext.java:57)
at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:134)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:182)
at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:265)
at javax.media.opengl.GLCanvas.display(GLCanvas.java:130)
at javax.media.opengl.GLCanvas.paint(GLCanvas.java:142)
at com.jmex.awt.jogl.JOGLAWTCanvas.paint(JOGLAWTCanvas.java:223)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276)
at sun.awt.RepaintArea.paint(RepaintArea.java:241)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:268)
at java.awt.Component.dispatchEventImpl(Component.java:4573)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.lang.RuntimeException: Please port CPU detection (32/64 bit) to your platform (mac os x/x86_64)
at com.sun.gluegen.runtime.CPU.(CPU.java:72)
… 25 more
Exception in thread “AWT-EventQueue-0” javax.media.opengl.GLException: Can not destroy context while it is current
at com.sun.opengl.impl.GLContextImpl.destroy(GLContextImpl.java:176)
at javax.media.opengl.GLCanvas$DestroyAction.run(GLCanvas.java:324)
at javax.media.opengl.GLCanvas.removeNotify(GLCanvas.java:185)
at java.awt.Container.removeNotify(Container.java:2663)
at javax.swing.JComponent.removeNotify(JComponent.java:4699)
at java.awt.Container.removeNotify(Container.java:2663)
at javax.swing.JComponent.removeNotify(JComponent.java:4699)
at java.awt.Container.removeNotify(Container.java:2663)
at javax.swing.JComponent.removeNotify(JComponent.java:4699)
at java.awt.Container.removeNotify(Container.java:2663)
at javax.swing.JComponent.removeNotify(JComponent.java:4699)
at javax.swing.JRootPane.removeNotify(JRootPane.java:750)
at java.awt.Container.removeNotify(Container.java:2663)
at java.awt.Window.removeNotify(Window.java:650)
at java.awt.Frame.removeNotify(Frame.java:879)
at java.awt.Window$1DisposeAction.run(Window.java:978)
at java.awt.Window.doDispose(Window.java:990)
at java.awt.Window.dispose(Window.java:937)
at imi.tests.DemoBase$SwingFrame$1.windowClosing(DemoBase.java:807)
at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:332)
at java.awt.Window.processWindowEvent(Window.java:1827)
at javax.swing.JFrame.processWindowEvent(JFrame.java:279)
at java.awt.Window.processEvent(Window.java:1785)
at java.awt.Component.dispatchEventImpl(Component.java:4497)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

If I understand your problem, you had already succeeded to use an older version of JOGL on this machine, hadn’t you? Which one?

I had it all working with Java 5.0 and JOGL from May 08.

The issue is updating to Java 6.0. The older JOGL fails (with a native lib link error). With the latest JOGL set up to be found by library path I get this error.

If you put the latest JOGL in the extensions folder it fails with a different error, but of course that also breaks any other java .apps you have the use JOGL as well.

It might come from the Apple’s JVM as it worked fine under Java 1.5 and no more under Java 1.6. Are you sure you used a 64 bits JVM when you used Java 1.5? Did you look at the source code of GlueGen? Did you open a bug report?

This has been resolved.
The final fix is to absolutely make sure all instances of gluegen-rt.jar and associate libs are removed from all system folders (and a Spotlight search will not find them all).

To be sure what is being loaded use the VM option:
-verbose:class
To see the path(s) and confirm the right glue-gen-rt and JOGL files are loaded.

Once it’s all the right files, it works fine.
Hope that helps someone else someday.

I’ve got this problem too. I’ve searched everywhere I can think of for stray copies of gluegen-rt.jar, but without success – I’ve found some copies but the problem is still there. Can you give any hints about where one can look to find these unwanted copies?

Also, I only see this problem with webstarts. I try to activate the vm option “-verbose:class” in the jnlp file by adding

java-vm-args="-verbose:class"

in the tag, but I don’t see any verbose output on the java console.

Thanks in advance for any tips.

I found the offending copy of gluegen-rt.jar (I’m embarrassed to admit it was in ~/Library/Java/Extensions!) and after removing it everything runs fine. Thanks for the help.