[OpenJDK 2D-Dev] [9] Review Request- JDK-8152971- JNI Warning with -Xcheck:jni
Prahalad Kumar Narayanan
prahalad.kumar.narayanan at oracle.com
Wed Jun 22 09:50:16 UTC 2016
Hello Everyone, on Java2D Group
Good day to you.
Please find herewith, webrev changes to fix the bug-
Bug ID : JDK-8152971 / -Xcheck:jni - warning in native method
Bug Link : https://bugs.openjdk.java.net/browse/JDK-8152971?filter=-1
Webrev : http://cr.openjdk.java.net/~pnarayanan/8152971/webrev.00/
Description on Bug:
1. Too many JNI warnings are reported in the native functions when test-code is run with VM Option: -Xcheck:jni
2. The warnings can be classified into 2 categories
a. JNI warnings that are thrown due to the missing exception checks after an Up call ( JNI function invoking Java method )
b. JNI warnings that are thrown due to increased usage of Local Reference objects.
Description on the Fix:
1. File : FontPath.c
Added JNIEnv->ExceptionCheck() and ExceptionClear() where Up call is invoked.
The checks are added only to the valid Up calls as per JNI spec.
Added JNIEnv->DeleteLocalRef where the native functions created Java side objects but did not delete their local reference after usage.
A few of the native functions get invoked as Callbacks to Windows APIs following the font enumeration.
Therefore at each callback, the count of active local references would increase.
Over time, the active local references would exceed the planned number of local references set by JVM.
2. File : awt_Component.cpp
Added JNIEnv->ExceptionCheck() and ExceptionClear() where an Up call displayed a JNI warning while running the Jtreg test script.
Information on Jtreg test script is given below.
3. File : LoadFontsJNICheck.sh
The shell script is already a part of JTreg test case & invokes LoadFontsJNICheck with -Xcheck:jni VM option
However, the script was configured to run only on Mac OS. Now, the script is modified to run on windows, linux and mac systems.
This way, the code changes can be checked for proper execution with test-case.
Kindly review the changes at your convenience and share your feedback.
Thank you for your time in review
Have a good day
Prahalad N.
More information about the 2d-dev
mailing list