Note this PR depends on the #13546 PR for the following:

[JDK-8306434](https://bugs.openjdk.org/browse/JDK-8306434): add support of 
virtual threads to JVMTI StopThread

So it can't be finalized and push until after JDK-8306434 is pushed. There will 
also be GHA failures until then. If JDK-8306434 results in any additional spec 
changes, they will likely impact this CR also.


[JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034) is adding some 
virtual thread support to JVMTI StopThread. This will allow JDWP 
ThreadReference.Stop and JDI ThreadReference.stop() to have the same level 
support for virtual threads.

Mostly this is a spec update for JDWP and JDI, but there are also some minor 
changes needed to the ThreadReference.stop() handling of JDWP errors, and 
throwing the appropriate exceptions. Also some minor cleanup in jdb. The debug 
agent doesn't need changes since JVMTI errors are just passed through as the 
corresponding JDWP errors, and the code for this is already in place. These 
errors are not new nor need any special handling.

Our existing testing for ThreadReference.stop() is fairly weak:

- nsk/jdb/kill/kill001, which tests stop() when the thread is suspended at a 
breakpoint. It will get problem listed by 
[JDK-8306034](https://bugs.openjdk.org/browse/JDK-8306034). I have fixes for it 
already working and will push it separately.
- nsk/jdi/stop/stop001, which is problem listed and only tests when the thread 
is blocked in Object.wait()
- nsk/jdi/stop/stop002, which only tests that throwing an invalid exception 
fails properly

I decided to take stop002 and make it a more thorough test of 
ThreadReference.stop(). See the comment at the top for a list of what is 
tested. As for reviewing this test, it's probably best to look at it as a 
completely new test rather than looking at diffs since so much has been changed 
and added.

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

Commit messages:
 - fix some jcheck whitespace errors
 - minor formatting fixes
 - minor JDWP spec wording change
 - JDWP and JDI support for stop() of a virtual thread.

Changes: https://git.openjdk.org/jdk/pull/13548/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13548&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306471
  Stats: 335 lines in 7 files changed: 258 ins; 13 del; 64 mod
  Patch: https://git.openjdk.org/jdk/pull/13548.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13548/head:pull/13548

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

Reply via email to