3 Replies Latest reply on Apr 12, 2011 8:20 AM by 854288

    AttachCurrentThread crash JVM Windows XP, Windows 2000 Ok

    854288
      I have a PCI card, that call a DLL and I subscribe a callback in that DLL, when the DLL call my code JNI, AttacCurrentThread and call to JVM.
      This code run ok for Windows *2000*, but in Windows XP crash JMV in AttachCurrentThread.
      The return value when I call to GetEnv is JNI_EDETACHED and the jvm information error is DuplicatedHandle.

      I have been looking for pointer bugs, memory bugs, mallocs without free... but I haven't seen nothing.

      The change is de the OS, is and upgrade from Windows *2000* to XP ServicePack 3.
      The card driver and DLL is the same for Windows *2000* and Windows XP.

      The computer is an Intel Core 2 Duo.

      Someone know, if the SO do something diferent that cause the jvm  crash,
      someone know if the management of processors is different or the management threads...

      Sorry, but my level english is low.

      Thank you
        • 1. Re: AttachCurrentThread crash JVM Windows XP, Windows 2000 Ok
          jschellSomeoneStoleMyAlias
          Different environment guarantees a different execution path.

          And that is an excellent way to expose pointer bugs that previously did not impact the application.
          • 2. Re: AttachCurrentThread crash JVM Windows XP, Windows 2000 Ok
            EJP
            Crash?????????

            If there is a return value how can this be a JVM crash? A crash is where an entire exits suddenly, possibly leaving a core dump or crash file of some kind behind it. This sounds like an error return from a JNI API call. In which case you should first consult the documentation for that API.

            Or maybe you got the error from one call and proceeded regardless to call another API which crashed. In which case the answer is (a) don't ignore error codes, and (b) see above.
            • 3. Re: AttachCurrentThread crash JVM Windows XP, Windows 2000 Ok
              854288
              Yes, it is a JVM crash, I think don't explain it fine, I'm sorry.

              The code call firstable to GetEnv and the return value is JNI_EDETACHED and
              the next call is to AttachCurrentThread, it's in this call when the JVM crash.

              I think that in all the return code, jni functions and third part api function, I'm checking the return value but I'll revise the code.

              I'm going to separate the code to call only the minimal and necesary code to get the callback from the card PCI driver and test this.

              I'll write the result here.

              Thanks

              Edited by: 851285 on 12-abr-2011 1:09