On Tue, 20 Sep 2022 00:55:32 GMT, David Holmes <dhol...@openjdk.org> wrote:
> This update is primarily about changes to the JNI Invocation API > specification, mainly in relation to `DestroyJavaVM`. The motivation for the > changes is to align with changes being made to the JLS, JVMS and > `java.lang.Runtime`, specifications in relation to VM termination - ref: > > JDK-8290196 12.8: Clarify the definition of program exit > https://bugs.openjdk.org/browse/JDK-8290196 > > JDK-8290388 5.7: Clarify the definition of JVM termination > https://bugs.openjdk.org/browse/JDK-8290388 > > JDK-8290036 Define and specify Runtime shutdown sequence > https://bugs.openjdk.org/browse/JDK-8290036 > > Mostly these are just non-normative changes to the JNI spec prose but there > are two actual specification changes: > > 1. The fact it is an error to detach a thread with active Java frames was > only mentioned in the overview section, not in the actual > `DetachCurrentThread` specification. (Just an oversight - the VM already > checked this) > > 2. We need to make it an error to call `DestroyJavaVM` from an attached > thread with active Java frames (as this can't work for the same reason we > disallow `DetachCurrentThread`). This requires an implementation change in > Hotspot. > > Issue 2 covers the code change, and regression test, in this PR. > > In addition the specification changes can be seen here: > > - specdiff: > http://cr.openjdk.java.net/~dholmes/8290482/8290482-jni-spec/diff.html > - original: > http://cr.openjdk.java.net/~dholmes/8290482/8290482-jni-spec/jni-invocation-original.html > - new: > http://cr.openjdk.java.net/~dholmes/8290482/8290482-jni-spec/jni-invocation-new.html > > The specification itself is not open but comments on the spec changes are > welcome - though please see the JBS issue and CSR request first. The revised > wording has already been extensively reviewed/negotiated between Alex > Buckley, Stuart Marks and myself, so any change must either be a glaring > error/problem or else a trivial adjustment. > > Thank you. This pull request has now been integrated. Changeset: e5b65c40 Author: David Holmes <dhol...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/e5b65c40ea032c6955311593e02ed44f14dfe80a Stats: 112 lines in 6 files changed: 108 ins; 1 del; 3 mod 8290482: Update JNI Specification of DestroyJavaVM for better alignment with JLS, JVMS, and Java SE API Specifications Reviewed-by: rehn, coleenp ------------- PR: https://git.openjdk.org/jdk/pull/10352