Will/Jani,
I'm getting an exception from odejava.dll when trying to remove a Geom from a space:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| An unexpected exception has been detected in native code outside the VM. Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x5E16D99 Function=dSpaceAdd+0x9 Library=C:\wip\lib\odejava.dll
Current Java thread: at org.odejava.ode.OdeJNI.dSpaceAdd(Native Method) at org.odejava.ode.Ode.dSpaceAdd(Ode.java:441) at org.odejava.Geom.removeFromSpace(Geom.java:357) at org.odejava.Space.remove(Space.java:155) at org.bennedum.tank.Universe.remove(Universe.java:214) at org.bennedum.tank.ProjectileManager.stop(ProjectileManager.java:110) at org.bennedum.tank.ProjectileManager.stepFrame(ProjectileManager.java:53) at org.bennedum.tank.Universe.stepFrame(Universe.java:283) at org.bennedum.tank.Universe$FrameBehavior.processStimulus(Universe.java:346) at javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:172) - locked <0x11a343f0> (a javax.media.j3d.BehaviorRetained) - locked <0x11a343f0> (a javax.media.j3d.BehaviorRetained) at javax.media.j3d.J3dThread.run(J3dThread.java:250) |
I didn't include all the other garbage output, but I can if anyone thinks it's useful.
The code from Geom.java is:
1 2 3 4 5 6 7 8
| protected void removeFromSpace () { assert spaceId != Space.SPACEID_ZERO: "This geom is already not in any Space"; Ode.dSpaceRemove(spaceId, geomId); spaceId = Space.SPACEID_ZERO; Ode.dSpaceAdd(spaceId, geomId);
} |
Is the SPACEID_ZERO defined by ODE or is it something peculiar to odejava? If it's specific to odejava, then I don't think you should be trying to add a geom to that space in ODE. But maybe I'm wrong?
I seem to recall that I had this problem once before, but I can't figure out what I did.
-Tab