RFR: 8283224: Remove THREAD_NOT_ALIVE from possible JDWP error codes
Chris Plummer
cjplummer at openjdk.org
Wed Sep 7 02:12:19 UTC 2022
THREAD_NOT_ALIVE originates from JVMTI. However, the debug agent converts it to INVALID_THREAD before passing it on to the debug agent client (the debugger, usually JDI), so debug agent users (JDI) should never see it. Currently ThreadReference.forceEarlyReturn() is the only API that even bothers to check for it, and it throws com.sun.jdi.IllegalThreadStateException, which is the same thing it already does for INVALID_THREAD.
In the JDWP spec I change the description of THREAD_NOT_ALIVE to "Not used". If you have a suggestion for better wording, please let me now. (I was thinking maybe "Unused" would be better.
In the JDI ThreadReference.forceEarlyReturn implementation, I removed the code that checks for THREAD_NOT_ALIVE since it should never occur. There is no behavior change associated with this change, and there is no JDI spec update necessary. The spec already says IllegalThreadStateException means "the thread is not suspended", and not being alive implies not suspended.
Note the JDWP spec for ThreadReference.ForceEarlyReturn used to mention THREAD_NOT_ALIVE as a possible error code, but it was removed as part of the loom work.
-------------
Commit messages:
- Cleanup THREAD_NOT_ALIVE usage
Changes: https://git.openjdk.org/jdk/pull/10189/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10189&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8283224
Stats: 4 lines in 2 files changed: 0 ins; 3 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/10189.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10189/head:pull/10189
PR: https://git.openjdk.org/jdk/pull/10189
More information about the serviceability-dev
mailing list