Hi Mandy,
On 5/10/2017 4:12 AM, mandy chung wrote:
This patch separates the JNI `FindClass` issue from the review thread
for JDK-8188052 [1] into a different issue.
webrev:
http://cr.openjdk.java.net/~mchung/jdk10/webrevs/8188052/webrev.00/index.html
src/hotspot/share/prims/jni.cpp
Okay ... so by nulling fromClass in the classloader during finalization
(soon to be moved to the Cleaner) you can now distinguish between the
OnLoad case and the OnUnload case, within FindClass - a comment to
clarify that would be good, please.
However you still have:
407 if (loader.is_null() &&
but you deleted the initialization of loader:
- 404 loader = Handle(THREAD, k->class_loader());
so it will by default be null. I suppose checking the loader is only a
potential optimization as the name of the class will be uniquely
determined anyway. But the code should be cleaned up.
---
Otherwise all seems fine.
Thanks,
David
This patch changes `FindClass` to specify the class loading context used
for the load and unload hook. `FindClass` when called from JNI_OnUnload
is changed to use the system class loader as the context. This is an
incompatible behavioral change and this bumps the version so that a
native library can determine the new behavior if desire. This change
proposes to defines JNI_VERSION_10 and I expect this name will be
revisited along with the version string for the proposed new release
cadence [2].
CSR: https://bugs.openjdk.java.net/browse/JDK-8188069
Thanks David for the suggested spec wordings.
thanks
Mandy
[1]
http://mail.openjdk.java.net/pipermail/core-libs-dev/2017-September/049292.html
[2]
http://mail.openjdk.java.net/pipermail/discuss/2017-September/004281.html