Javaw.exe - Application Error

I’m still getting this error when exiting some of the demos, but until this morning I had never had it with my own application, which allowed me to figure out where the problem seems to be.



Whenever I use a texture state in my scene graph, I get a javaw.exe application error on exit. I’ve just upgraded to the latest CVS version, including the LWJGL update to 0.9.



I’m assuming that this is an LWJGL problem, since jME has no native code. Is there some sort of cleanup I should be doing with textures to prevent this from happening?

I have never seen this error. Can you paste it for me?

Here it is:



[/img]

wow, very interesting. I run in a couple of ways:


  1. Through eclipse, this starts up a Javaw process for it.
  2. Through ant, this is just a normal java process.
  3. Webstart, which also starts javaw.



    All three run fine on my end.



    Is there something that I can do to recreate it? I want to see it so I can track it down. It very well could be us not cleaning something up as we exit.

I’m just stepping out, but I’ll try a few things when I get back. I experience it whenever I exit the application.



I’m wondering whether it’s something to do with my setup - Windows 2000, Java 1.4.2 (build 1.4.2-b28). I’ll try with a different JVM (maybe 1.5 beta) and see if that eliminates it. If not, then I’m not sure what it would be.

Ok, when you get back, just let me know how you are running it, what you are using (Textures the only thing that causes it?) and your setup (which you just gave me) and I’ll start asking around. This is the first I’ve heard of this issue, and it’s a little scary. :slight_smile:

If you are using 1.4.2, I suggest 1.4.2_03 or 1.4.2_04. I had some problems with 1.4.2 when it came out. Probably not your issue, but if you were on that, we could cross that off as a possible issue.



I’m on 2000 Pro (SP4) with 1.4.2_03-b02 with a radeon 9800xt. Not seeing this issue here though…

Okay… I’ve replaced my JDK with 1.4.2_04 and I’m still seeing it. Until now I had been running my program from IDEA 3.0, but I’ve duplicated the problem at the command line. Here’s my command line:


java -Djava.library.path="librariesjme;librariesodejavawin32" -cp "_buildclasses;librariesjmejme.jar;librariesjmelwjgl.jar;librariesodejavaodejava.jar;librariesodejavavecmath.jar" Stegoracer



The application itself does very little, it's just a tweaked jME-ODE demo. I don't think ODE is causing the problem, but I'll comment all that out to eliminate that as a possibility.

I can send all the code if necessary, but this should give you a basic idea:

protected void initGame()
{
   ZBufferState buf = display.getRenderer().getZBufferState();
   buf.setEnabled( true );
   buf.setFunction( ZBufferState.CF_LEQUAL );

   scene = new Node( "Main 3D scene" );
   scene.setRenderState( buf );

   TextureState textureState = display.getRenderer().getTextureState();
   Texture texture = TextureManager.loadTexture( "data/steel.jpg", Texture.MM_LINEAR, Texture.FM_LINEAR, true );
   textureState.setTexture( texture );
   textureState.setEnabled( true );
   scene.setRenderState( textureState );

   box = new Box( "testBox", new Vector3f( 0f, 0f, 0f ), 10f, 10f, 10f );
   scene.attachChild( box );

   sphere = new Sphere( "testSphere", new Vector3f( 0f, 0f, 0f ), 10, 10, 1f );
   scene.attachChild( sphere );

   root = new Node( "Scene graph Root" );
   root.attachChild( scene );

   scene.updateGeometricState( 0.0f, true );

   physicalModel = new PhysicalModel();
}

protected void update( float interpolation )
{
   timer.update();
   input.update( timer.getTimePerFrame() );
   scene.updateWorldData( timer.getTimePerFrame() );

   physicalModel.simulate( 1 );

   Body boxBody = physicalModel.getBoxBody();

   box.setLocalTranslation( MathConversion.convert( boxBody.getPosition() ) );
   box.setLocalRotation( MathConversion.convert( boxBody.getRotation() ) );

   Body sphereBody = physicalModel.getSphereBody();
   sphere.setLocalTranslation( MathConversion.convert( sphereBody.getPosition() ) );
   sphere.setLocalRotation( MathConversion.convert( sphereBody.getRotation() ) );
}

I forgot to add that if I comment out this one line, the error doesn’t occur:



scene.setRenderState( textureState );

The code looks just fine. So, I’m truely at a loss for what is causing this. Just to clarify, you get this on all the webstart demos? But let me guess, not the terrain lighting demo? Because it doesn’t use textures? Actually, that’d be an interesting test (because it does use textures, I just setEnabled(false) on it).



Definately looks like a jME/LWJGL issue (not ODE). It is also happening at the LWJGL level, the question is, is it because of something we are doing. Can you run any other LWJGL demos (non-jme) and test?



P.S. What graphics card are you using? Do you have the latest drivers?

Actually, I do get it on all of the demos that work (for some reason, the Imposter demo and the Render to Texture exit right away), including the terrain lighting demo. I’ve got an ATI RADEON 9700, with fairly recent drivers. I’ll get some new ones.

I’m also running a 9700 with no issues.



This is quite strange, do me a favor and go to:



http://grexengine.com/sections/externalgames/



run the top demo (cosmic trip). I know it uses LWJGL and doesn’t touch any jME stuff.



Let’s see if it does something similar.

Precisely the same error - good, looks like it’s LWJGL-related, and quite possibly because of a problem unique to my system.

That’s good! (Well, maybe not for you… heh, sorry.)



Did the newer drivers help at all?

Ugh… what a hassle! For some reason, the latest Catalyst drivers (4.4) really don’t like my system. I was getting screen corruption and a complete inability to use any hardware-accelerated modes.



After some wrestling, I got the old drivers reinstalled, and now the problem is gone. laugh

Great, glad to hear it. You really had me thinking I hosed something up bad there for a bit.