> 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.

David Holmes has updated the pull request incrementally with one additional 
commit since the last revision:

  Missed update to Threads::is_supported_jni_version

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/10352/files
  - new: https://git.openjdk.org/jdk/pull/10352/files/e6c36702..e56fd09d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10352&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10352&range=01-02

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/10352.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10352/head:pull/10352

PR: https://git.openjdk.org/jdk/pull/10352

Reply via email to