I tested this on the following platforms Windows XP Pro x64, Windows XP Pro x86, Windows 2003 x64. I also tested the following jdks 5.0FCS, 5.0 u5 (FCS), 5.0 u6 (FCS), 5.0u7 (FCS), 5.0u8 B02, 5.0u8 B03. The problem happened on all of the above.
I tried this on Solaris 9 Sparc as well and the issue does not happen there so it is a Windows problem.
This only occurs when the -Xcheck:jni option is used for JCK manual tests. The 2 Tests in questions are:
1: /api/java_awt/interactive/eventTests.html #EventTest0015
When you run this test you are asked to ckick on "Show Frame" and asked within this frame to generate a menu via a right click on your mouse, when you right click here instead of an action performed being generated the test fails.
The following message is given several times (this is in OUT2 option under Test Run Messages pane in Javatest):
Warning: Calling other JNI functions in the scope of Get/Release PrimitiveArrayCritical or Get/ReleaseStringCritical
This is then followed by the following message:
Fatal ERROR in native method: Bad global or local ref passed to JNI
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:269)
at java.lang.Thread.run(Thread.java:595)
The test exits with the following exit code:
Failed. unexpected exit code: exit code 1
2: /api/java_awt/interactive/PMenuTests.html #PMenuTests
This test asks for you to generate a pop up menu via the right click on a mouse. When you right click instead of a menu pop up the test failes.
The following message is given several times as above in the first test (this is in OUT2 option under Test Run Messages pane in Javatest):
Warning: Calling other JNI functions in the scope of Get/Release PrimitiveArrayCritical or Get/ReleaseStringCritical
This is then followed by the following message:
Fatal ERROR in native method: Bad global or local ref passed to JNI
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:269)
at java.lang.Thread.run(Thread.java:595)
The test exits with the following exit code as above:
Failed. unexpected exit code: exit code 1
I have also attached and zipped 2 JCK report directories. The first is for Windows XP Pro x64 and the second is for Windows XP Pro x86 (this one just has the 2 tests and nothing else).
The location of the JCK testsuite in Dublin is as follows:
/net/carlow.ireland/export/home4/jck/JCK-runtime-15a
/net/carlow.ireland/export/home4/jck/JCK-compiler-15a
To run the testsuite first map the drive Z:/ to \\carlow\home4 (or your local equivalent). Then copy the interactive file from Z:/jck/utils/tigerTaskFiles/windows . You will need to edit the following fields: PRODUCT (this is you jdks location), WORK_DIRECTORY (this is a local workspace for the testsuite), and OPTIONS (this is where you set -Xcheck:jni).
Once this is done type java -cp Z:/jck/transition/autotest.m/autotest.jar autotest.mini.Test -t interactive (or the local equivalent of this location). Now just run run.sh script. This will start java test.
Go to "Configure" and click "Load Configuration" and click on jck.jti. Then click on configure again and go to "Change Configuration" and then "Other Values". Set the option "Test Multi Platfrom JVM" to yes and then set the option "Keywords to "runtime & interactive" and then click done.
Wait till all 33,547 test load and then run the 2 tests mentioned above by choosing them from the menu on the left hand of Java test harness.