Degrade Thread.suspend/resume to throw UOE unconditionally.

Another step in the removal of this deadlock prone mis-feature from the 
user-facing API. Thread.suspend/resume have been deprecated since JDK 1.2 
(1998) and terminally deprecated since Java 14. ThreadGroup.suspend/resume were 
degraded to throw UOE in Java 19. As of Java 19, Thread.suspend/resume 
continues to work for platform threads but throws UOE for virtual threads. The 
next step is to degrade both methods to throw UOE for all threads. A corpus 
search of 19M classes in 113k JAR files found only 22 classes using these 
methods so this change is unlikely to be disruptive.

The change requires some minor adjustments to the JVM TI and JDWP 
specifications, and a minor update to the JDI docs.

Leonid Mesnik is working on 
[PR10351](https://github.com/openjdk/jdk/pull/10351) to remove/replace the last 
few usages of Thread.suspend/resume from the hotspot tests (most of these can 
use JVMTI SuspendThread/ResumeThread).

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

Commit messages:
 - Fix typo in test comment
 - Keep link to threadPrimitiveDeprecation.html
 - Merge
 - Tests
 - Initial commit

Changes: https://git.openjdk.org/jdk/pull/10324/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10324&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8249627
  Stats: 347 lines in 15 files changed: 148 ins; 139 del; 60 mod
  Patch: https://git.openjdk.org/jdk/pull/10324.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10324/head:pull/10324

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

Reply via email to