The call to CGL.getCurrentContext() inside createExternalGLContext() gives an UnsatisfiedLinkError on Mac OS X 10.6.7, nvidia GeForce 320M, Java 1.6.0_24. It works fine in a standalone SWT app, but freezes in an Eclipse RCP app. This is after putting in -Djava.awt.headless=true (or removing initSingleton()) to get the test past the freeze in bug 485. Daemon Thread [Thread-1] (Suspended (exception UnsatisfiedLinkError)) CGL.getCurrentContext() line: not available [native method] MacOSXExternalCGLContext.create(GLDrawableFactory, GLProfile) line: 66 MacOSXAWTCGLDrawableFactory(MacOSXCGLDrawableFactory).createExternalGLContextImpl() line: 169 MacOSXAWTCGLDrawableFactory(GLDrawableFactoryImpl).createExternalGLContext() line: 282 JOGLEditor.createPartControl(Composite) line: 264 EditorReference.createPartHelper() line: 670 EditorReference.createPart() line: 465 EditorReference(WorkbenchPartReference).getPart(boolean) line: 595 EditorPane(PartPane).setVisible(boolean) line: 313 PresentablePart.setVisible(boolean) line: 180 PresentablePartFolder.select(IPresentablePart) line: 270 LeftToRightTabOrder.select(IPresentablePart) line: 65 TabbedStackPresentation.selectPart(IPresentablePart) line: 473 EditorStack(PartStack).refreshPresentationSelection() line: 1254 EditorStack(PartStack).setSelection(LayoutPart) line: 1207 EditorStack(PartStack).showPart(LayoutPart, Object) line: 1606 EditorStack(PartStack).add(LayoutPart, Object) line: 497 EditorStack.add(LayoutPart, Object) line: 103 EditorStack(PartStack).add(LayoutPart) line: 483 EditorStack.add(LayoutPart) line: 112 EditorSashContainer.addEditor(EditorPane, EditorStack) line: 63 EditorAreaHelper.addToLayout(EditorPane, EditorStack) line: 225 EditorAreaHelper.addEditor(EditorReference, String, boolean) line: 213 EditorManager.createEditorTab(EditorReference, String) line: 778 EditorManager.openEditorFromDescriptor(EditorDescriptor, IEditorInput, IMemento) line: 677 EditorManager.openEditor(String, IEditorInput, boolean, IMemento) line: 638 WorkbenchPage.busyOpenEditorBatched(IEditorInput, String, boolean, int, IMemento) line: 2860 WorkbenchPage.busyOpenEditor(IEditorInput, String, boolean, int, IMemento) line: 2768 WorkbenchPage.access$11(WorkbenchPage, IEditorInput, String, boolean, int, IMemento) line: 2760 WorkbenchPage$10.run() line: 2711 BusyIndicator.showWhile(Display, Runnable) line: 70 WorkbenchPage.openEditor(IEditorInput, String, boolean, int, IMemento) line: 2707 WorkbenchPage.openEditor(IEditorInput, String, boolean, int) line: 2691 WorkbenchPage.openEditor(IEditorInput, String) line: 2674 ApplicationWorkbenchWindowAdvisor.postWindowOpen() line: 53 WorkbenchWindow.fireWindowOpened() line: 1338 WorkbenchWindow.open() line: 798 Workbench$24.runWithException() line: 1235 Workbench$24(StartupThreading$StartupRunnable).run() line: 31 RunnableLock.run() line: 35 UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 134 Display.runAsyncMessages(boolean) line: 3593 Display.readAndDispatch() line: 3286 ApplicationWorkbenchAdvisor(WorkbenchAdvisor).openWindows() line: 803 Workbench$31.runWithException() line: 1567 Workbench$31(StartupThreading$StartupRunnable).run() line: 31 RunnableLock.run() line: 35 UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 134 Display.runAsyncMessages(boolean) line: 3593 Display.readAndDispatch() line: 3286 Workbench.runUI() line: 2548 Workbench.access$4(Workbench) line: 2438 Workbench$7.run() line: 671 Realm.runWithDefault(Realm, Runnable) line: 332 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 664 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149 Application.start(IApplicationContext) line: 20 EclipseAppHandle.run(Object) line: 196 EclipseAppLauncher.runApplication(Object) line: 110 EclipseAppLauncher.start(Object) line: 79 EclipseStarter.run(Object) line: 369 EclipseStarter.run(String[], Runnable) line: 179 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 Method.invoke(Object, Object...) line: 597 Main.invokeFramework(String[], URL[]) line: 620 Main.basicRun(String[]) line: 575 Main.run(String[]) line: 1408 Main.main(String[]) line: 1384
Turns out this is not a JOGL bug -- this is what happens when I forget to update my JAR to match my .jnilib when a class has changed its package name.