I'm using jme and LWJGL.
Sometimes JVM is crashed while generating DisplayList.
How can I fix it?
Thanks in advance.
Information)
Gfx card: Radeon HD3850
OS: Windows XP SP3
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x292adb59, pid=2996, tid=2364
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# Problematic frame:
# C 0x292adb59
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x003e7800): JavaThread "main" [_thread_in_native, id=2364, stack(0x008e0000,0x00930000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x32303000
Registers:
EAX=0x32302ffc, EBX=0x00000004, ECX=0x00000000, EDX=0x3d06a110
ESP=0x0092f848, EBP=0x00001155, ESI=0x2927b660, EDI=0x2927b884
EIP=0x292adb59, EFLAGS=0x00210202
Top of Stack: (sp=0x0092f848)
0x0092f848: 6963991e 00000004 32302ffc 00001e82
0x0092f858: 29270000 00003786 35ea1000 00001705
0x0092f868: 00000000 29270000 29270000 6963661c
0x0092f878: 00000000 003e7800 0092f8d8 0092f8cc
0x0092f888: 27785b1c 00000004 00003786 00001405
0x0092f898: 35ea1000 00b11d77 003e7910 0092f8cc
0x0092f8a8: 00000004 00003786 00001405 0092f8ec
0x0092f8b8: 00000000 6960c4f0 00000000 0092f8c4
Instructions: (pc=0x292adb59)
0x292adb49: 00 8b 44 24 08 8b 15 6c a0 28 29 8b 08 89 4a 34
0x292adb59: 8b 48 04 8b 40 08 89 4a 38 89 42 3c c2 08 00 00
Stack: [0x008e0000,0x00930000], sp=0x0092f848, free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0x292adb59
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J org.lwjgl.opengl.GL11.nglDrawElements(IIILjava/nio/Buffer;IJ)V
J org.lwjgl.opengl.GL11.glDrawElements(ILjava/nio/IntBuffer;)V
J com.jme.renderer.lwjgl.LWJGLRenderer.draw(Lcom/jme/scene/TriMesh;)V
j com.jme.renderer.lwjgl.LWJGLRenderer.createDisplayList(Lcom/jme/scene/Geometry;)I+75
j com.jme.scene.Geometry.lockMeshes(Lcom/jme/renderer/Renderer;)V+35
j com.rontab.bim.scene.TriMeshExt.lockMeshes(Lcom/jme/renderer/Renderer;)V+39
j com.jme.scene.Node.lockMeshes(Lcom/jme/renderer/Renderer;)V+42
j com.rontab.bim.scene.NodeExt.lockMeshes(Lcom/jme/renderer/Renderer;)V+38
j com.jme.scene.Node.lockMeshes(Lcom/jme/renderer/Renderer;)V+42
j com.rontab.bim.scene.NodeExt.lockMeshes(Lcom/jme/renderer/Renderer;)V+38
j com.jme.scene.Node.lockMeshes(Lcom/jme/renderer/Renderer;)V+42
j com.rontab.bim.thread.LockMesh.call()Ljava/lang/Boolean;+15
j com.rontab.bim.thread.LockMesh.call()Ljava/lang/Object;+1
j com.jme.util.GameTask.invoke()V+4
J com.jme.util.GameTaskQueue.execute()V
J com.rontab.bim.app.RontabGame.preUpdate()V
j com.rontab.bim.app.RontabGame.start()V+76
j com.rontab.bake.Bake.main([Ljava/lang/String;)V+12
v ~StubRoutines::call_stub
not while creating ... its while drawing:
J com.jme.renderer.lwjgl.LWJGLRenderer.draw(Lcom/jme/scene/TriMesh;)V
jme is probably drawing more than it created