Hi gurus,
One of our JavaFX application crashes consistently on one Mac OSX 10.6, while it works well on other Mac books.
We checked the crash log, and found it crashed at com.sun.opengl.impl.macosx.cgl.CGL.deleteContext().
Someone said he had resolved the issue by replacing jogl to latest nightly build. Please refer to http://forums.sun.com/thread.jspa?threadID=5413583.
We did resolve it before(by replacing jogl library), but now it crashed again. We tried to replace jogl library, but it still kept crashing.
Could you please tell me that it’s a jogl issue or Mac OSX driver issue?
If you need more information, please let me know.
Thanks,
Jacky
-------------crash log--------------------
Process: java [812]
Path: /usr/bin/java
Identifier: com.apple.javajdk16.cmd
Version: 1.0 (1.0)
Code Type: X86-64 (Native)
Parent Process: sh [794]
PlugIn Path: /var/root/Library/Java/Extensions/libjogl_gl2.jnilib
PlugIn Identifier: libjogl_gl2.jnilib
PlugIn Version: ??? (???)
Date/Time: 2010-02-23 12:21:06.462 +0800
OS Version: Mac OS X 10.6.2 (10C540)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread: 14 Java: AWT-EventQueue-0
Application Specific Information:
Java information:
Exception type: Bus Error (0xa) at pc=0x00000001257c8a54
Java VM: Java HotSpot™ 64-Bit Server VM (14.3-b01-101 mixed mode macosx-amd64)
Current thread (0x0000000110a1c800): JavaThread “AWT-EventQueue-0” [_thread_in_native, id=594030592, stack(0x0000000123583000,0x0000000123683000)]
Stack: [0x0000000123583000,0x0000000123683000]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.sun.opengl.impl.macosx.cgl.CGL.deleteContext(J)Z+0
j com.sun.opengl.impl.macosx.cgl.MacOSXPbufferCGLContext$NSOpenGLImpl.destroy(J)Z+1
j com.sun.opengl.impl.macosx.cgl.MacOSXPbufferCGLContext.destroyImpl()V+17
j com.sun.opengl.impl.GLContextImpl.destroy()V+64
j com.sun.scenario.effect.impl.j2d.jogl.JOGLRenderer.isHwValid(Lcom/sun/scenario/effect/FilterContext;)Z+174
j com.sun.scenario.effect.impl.j2d.jogl.JOGLRenderer.createRenderer(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/j2d/jogl/JOGLRenderer;+1
v ~StubRoutines::call_stub
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j com.sun.scenario.effect.impl.RendererFactory.createJOGLRenderer(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;+58
j com.sun.scenario.effect.impl.RendererFactory.access$600(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;+1
j com.sun.scenario.effect.impl.RendererFactory$1.run()Lcom/sun/scenario/effect/impl/Renderer;+91
j com.sun.scenario.effect.impl.RendererFactory$1.run()Ljava/lang/Object;+1
v ~StubRoutines::call_stub
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;+0
j com.sun.scenario.effect.impl.RendererFactory.createRenderer(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;+8
j com.sun.scenario.effect.impl.Renderer.getRenderer(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;+139
j com.sun.scenario.effect.Effect.getCompatibleImage(Lcom/sun/scenario/effect/FilterContext;II)Lcom/sun/scenario/effect/Filterable;+1
j com.sun.scenario.scenegraph.SGNode.renderOpacity(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+197
j com.sun.scenario.scenegraph.SGNode.doRender(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+43
j com.sun.scenario.scenegraph.SGNode.render(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+154
j com.sun.scenario.scenegraph.SGGroup.renderContent(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+48
j com.sun.scenario.scenegraph.SGNode.doRender(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+103
j com.sun.scenario.scenegraph.SGNode.render(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+76
j com.sun.scenario.scenegraph.SGGroup.renderContent(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+48
j com.sun.scenario.scenegraph.SGNode.doRender(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+103
j com.sun.scenario.scenegraph.SGNode.render(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+76
j com.sun.scenario.scenegraph.SGGroup.renderContent(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+48
j com.sun.scenario.scenegraph.SGNode.doRender(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+103
j com.sun.scenario.scenegraph.SGNode.render(Ljava/awt/Graphics2D;Lcom/sun/javafx/geom/Bounds2D;Lcom/sun/javafx/geom/transform/BaseTransform;)V+76
j com.sun.scenario.scenegraph.JSGPanel.paintComponent(Ljava/awt/Graphics;)V+172
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+290
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+473
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+322
j javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+473
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+322
j com.sun.javafx.tk.swing.WindowImpl$2$1.paint(Ljava/awt/Graphics;)V+16
j javax.swing.JComponent._paintImmediately(IIII)V+763
j javax.swing.JComponent.paintImmediately(IIII)V+83
j javax.swing.JComponent.paintImmediately(Ljava/awt/Rectangle;)V+17
j com.sun.scenario.scenegraph.JSGPanel.repaintDirtyRegions(Z)V+119
j com.sun.scenario.scenegraph.JSGPanelRepainter.repaintAll()V+54
j com.sun.scenario.scenegraph.JSGPanelRepainter$FrameDisplay.run()V+7
j com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(J)V+248
j com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run()V+38
j com.sun.embeddedswing.EmbeddedEventQueue.doPulse()V+27
j com.sun.embeddedswing.EmbeddedEventQueue.access$000(Lcom/sun/embeddedswing/EmbeddedEventQueue;)V+1
j com.sun.embeddedswing.EmbeddedEventQueue$2.run()V+4
j java.awt.event.InvocationEvent.dispatch()V+47
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j java.awt.EventDispatchThread.run()V+9
v ~StubRoutines::call_stub
Java Threads: ( => current thread )
0x00000001020e8800 JavaThread “pool-1-thread-1” daemon [_thread_blocked, id=616628224, stack(0x0000000124b10000,0x0000000124c10000)]
0x00000001020e1800 JavaThread “Long sleeping thread” daemon [_thread_blocked, id=615567360, stack(0x0000000124a0d000,0x0000000124b0d000)]
0x00000001020f0000 JavaThread “Java2D Disposer” daemon [_thread_blocked, id=612413440, stack(0x000000012470b000,0x000000012480b000)]
0x0000000102002000 JavaThread “DestroyJavaVM” [_thread_blocked, id=5246976, stack(0x0000000100401000,0x0000000100501000)]
=>0x0000000110a1c800 JavaThread “AWT-EventQueue-0” [_thread_in_native, id=594030592, stack(0x0000000123583000,0x0000000123683000)]
0x0000000110a17000 JavaThread “AWT-Shutdown” [_thread_blocked, id=564936704, stack(0x00000001219c4000,0x0000000121ac4000)]
0x0000000110b4e800 JavaThread “AWT-AppKit” daemon [_thread_in_native, id=1893374944, stack(0x00007fff5f400000,0x00007fff5fc00000)]
0x0000000102031800 JavaThread “Low Memory Detector” daemon [_thread_blocked, id=288387072, stack(0x0000000111207000,0x0000000111307000)]
0x000000011082a800 JavaThread “CompilerThread1” daemon [_thread_blocked, id=287326208, stack(0x0000000111104000,0x0000000111204000)]
0x000000011082a000 JavaThread “CompilerThread0” daemon [_thread_blocked, id=286265344, stack(0x0000000111001000,0x0000000111101000)]
0x0000000110829000 JavaThread “Signal Dispatcher” daemon [_thread_blocked, id=275832832, stack(0x000000011060e000,0x000000011070e000)]
0x0000000102031000 JavaThread “Finalizer” daemon [_thread_blocked, id=274771968, stack(0x000000011050b000,0x000000011060b000)]
0x0000000102030000 JavaThread “Reference Handler” daemon [_thread_blocked, id=273711104, stack(0x0000000110408000,0x0000000110508000)]
Other Threads:
0x0000000102029000 VMThread [stack: 0x0000000110305000,0x0000000110405000] [id=272650240]
0x000000010203a800 WatcherThread [stack: 0x000000011130a000,0x000000011140a000] [id=289447936]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
----cutted due to the post size limit ----