Crash when using jogl and Drag&Drop

I have a bug which happen randomly often when I am using Drag and Drop and jogl. It makes my JBuilderX crash, and the following log is generated. From what the log show, it might be a problem in the jogl implementation :

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x2D1C88D
Function=Java_sun_awt_windows_WDialogPeer_pSetIMMOption+0x4C0
Library=C:\JBuilderX\jdk1.4\jre\bin\awt.dll

Current Java thread:
at net.java.games.jogl.impl.JAWT.FreeDrawingSurface0(Native Method)
at net.java.games.jogl.impl.JAWT.FreeDrawingSurface(JAWT.java:54)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.unlockSurface(WindowsOnscreenGLContext.java:196)
at net.java.games.jogl.impl.windows.WindowsOnscreenGLContext.makeCurrent(WindowsOnscreenGLContext.java:122)
- locked <0x10545c58> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
at net.java.games.jogl.impl.GLContext.invokeGL(GLContext.java:203)
- locked <0x10545c58> (a net.java.games.jogl.impl.windows.WindowsOnscreenGLContext)
at net.java.games.jogl.GLCanvas.displayImpl(GLCanvas.java:186)
at net.java.games.jogl.GLCanvas.display(GLCanvas.java:74)
at net.java.games.jogl.GLCanvas.paint(GLCanvas.java:81)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Dynamic libraries:
0x00400000 - 0x00407000 C:\JBuilderX\jdk1.4\bin\javaw.exe
0x77F50000 - 0x77FF7000 C:\WINDOWS\System32\ntdll.dll
0x77E40000 - 0x77F4F000 C:\WINDOWS\system32\kernel32.dll
0x77DA0000 - 0x77E39000 C:\WINDOWS\system32\ADVAPI32.dll
0x78000000 - 0x78087000 C:\WINDOWS\system32\RPCRT4.dll
0x77D10000 - 0x77D9C000 C:\WINDOWS\system32\USER32.dll
0x7E190000 - 0x7E1D1000 C:\WINDOWS\system32\GDI32.dll
0x77BE0000 - 0x77C33000 C:\WINDOWS\system32\MSVCRT.dll
0x76300000 - 0x7631C000 C:\WINDOWS\System32\IMM32.DLL
0x621F0000 - 0x621F8000 C:\WINDOWS\System32\LPK.DLL
0x72F10000 - 0x72F6A000 C:\WINDOWS\System32\USP10.dll
0x08000000 - 0x08136000 C:\JBuilderX\jdk1.4\jre\bin\client\jvm.dll
0x76B10000 - 0x76B39000 C:\WINDOWS\System32\WINMM.dll
0x6BD00000 - 0x6BD0D000 C:\WINDOWS\System32\SYNCOR11.DLL
0x10000000 - 0x10007000 C:\JBuilderX\jdk1.4\jre\bin\hpi.dll
0x003E0000 - 0x003EE000 C:\JBuilderX\jdk1.4\jre\bin\verify.dll
0x008A0000 - 0x008B8000 C:\JBuilderX\jdk1.4\jre\bin\java.dll
0x003F0000 - 0x003FD000 C:\JBuilderX\jdk1.4\jre\bin\zip.dll
0x02CA0000 - 0x02DAF000 C:\JBuilderX\jdk1.4\jre\bin\awt.dll
0x72F70000 - 0x72F93000 C:\WINDOWS\System32\WINSPOOL.DRV
0x7CD50000 - 0x7CE74000 C:\WINDOWS\system32\ole32.dll
0x02FC0000 - 0x03010000 C:\JBuilderX\jdk1.4\jre\bin\fontmanager.dll
0x51000000 - 0x51047000 C:\WINDOWS\System32\ddraw.dll
0x73B30000 - 0x73B36000 C:\WINDOWS\System32\DCIMAN32.dll
0x5C000000 - 0x5C0C8000 C:\WINDOWS\System32\D3DIM700.DLL
0x74680000 - 0x746C4000 C:\WINDOWS\System32\MSCTF.dll
0x07270000 - 0x0729B000 C:\WINDOWS\System32\msctfime.ime
0x76F60000 - 0x76F70000 C:\WINDOWS\System32\Secur32.dll
0x7A170000 - 0x7A1F1000 C:\WINDOWS\System32\CLBCATQ.DLL
0x770F0000 - 0x7717B000 C:\WINDOWS\system32\OLEAUT32.dll
0x77020000 - 0x770E5000 C:\WINDOWS\System32\COMRes.dll
0x77BD0000 - 0x77BD7000 C:\WINDOWS\system32\VERSION.dll
0x073D0000 - 0x073D5000 C:\JBuilderX\jdk1.4\jre\bin\jawt.dll
0x073E0000 - 0x07481000 C:\JBuilderX\jdk1.4\jre\bin\jogl.dll
0x5E4F0000 - 0x5E5B6000 C:\WINDOWS\System32\OPENGL32.dll
0x68D80000 - 0x68D9E000 C:\WINDOWS\System32\GLU32.dll
0x69500000 - 0x6986B000 C:\WINDOWS\System32\nvoglnt.dll
0x74650000 - 0x74676000 C:\WINDOWS\System32\Msimtf.dll
0x76C60000 - 0x76C82000 C:\WINDOWS\system32\imagehlp.dll
0x6D820000 - 0x6D89D000 C:\WINDOWS\system32\DBGHELP.dll
0x76BC0000 - 0x76BCB000 C:\WINDOWS\System32\PSAPI.DLL

Heap at VM Abort:
Heap
def new generation total 576K, used 195K [0x10010000, 0x100b0000, 0x104f0000)
eden space 512K, 34% used [0x10010000, 0x1003cbc8, 0x10090000)
from space 64K, 25% used [0x10090000, 0x10094268, 0x100a0000)
to space 64K, 0% used [0x100a0000, 0x100a0000, 0x100b0000)
tenured generation total 1408K, used 1254K [0x104f0000, 0x10650000, 0x14010000)
the space 1408K, 89% used [0x104f0000, 0x10629910, 0x10629a00, 0x10650000)
compacting perm gen total 9216K, used 9088K [0x14010000, 0x14910000, 0x18010000)
the space 9216K, 98% used [0x14010000, 0x148f0270, 0x148f0400, 0x14910000)

Local Time = Mon Aug 02 22:22:44 2004
Elapsed Time = 249

The exception above was detected in native code outside the VM

Java VM: Java HotSpot™ Client VM (1.4.2_01-b06 mixed mode)

I am actually developping the DnD system of my application, so perhaps an eventual unwanted exception in the event dispatcher thread produced by my code help the bug in the jogl code to occur.

I will finish and clean my DnD system soon, I will confirm later if the bug is still there or not in a clean environment.

The 1.4.2_01-b06 JVM have a bug which corrupt the state of the JVM when we use the DnD (found whith the “java -Xcheck:jni myProgram” command line). I posted a bug report on the website of Sun.

It seems to be the cause of the random bug that I obtained with jogl.

Out of curiosity, what’s the bug ID?