> Degrade Thread.stop to throw UOE unconditionally, deprecate ThreadDeath for 
> removal, and remove the remaining special handling of ThreadDeath from the 
> JDK.
> 
> Thread.stop is inherently unsafe and has been deprecated since JDK 1.2 (1998) 
> with a link to a supplementary page that explains the rationale. Some of the 
> API surface has already been degraded or removed: Thread.stop(Throwable) was 
> degraded to throw UOE in Java 8 and removed in Java 11, and ThreadGroup.stop 
> was degraded to throw UOE in Java 19. As of Java 19, the no-arg Thread.stop 
> continues to work as before for platform threads but throws UOE for virtual 
> threads. The next step in the glacial pace removal is the degrading of the 
> no-arg Thread.stop method to throw UOE for all threads.
> 
> To keep things manageable, the change proposed here leaves JVM_StopThread in 
> place. A separate issue will remove it and do other cleanup/removal in the 
> VM. We have another JBS issue for the updates to the JLS and JVMS where 
> asynchronous exceptions are defined. There is also some remaining work on a 
> test class used by 6 jshell tests - if they aren't done in time then we will 
> temporarily exclude them.
> 
> The change here has no  impact on the debugger APIs (JVM TI StopThread, JDWP 
> ThreadReference/Stop, and JDI ThreadReference.stop). Debuggers can continue 
> to cause threads to throw an asynchronous exception, as might be done when 
> simulating code throwing an exception at some point in the code.

Alan Bateman has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains 10 additional commits since the 
last revision:

 - Repalce "it" with "victim thread"
 - Merge
 - Revert test/langtools/ProblemList.txt as jshell tests no longer rely on 
Thread.stop
 - become -> became in javadoc
 - Merge
 - Remove stopThread permission from RuntimePermission table, exclude jshell 
tests
 - Deprecate for removal
 - Next iteration, update dates in headers
 - Merge
 - Initial commit

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10230/files
  - new: https://git.openjdk.org/jdk/pull/10230/files/86424b65..a00f38a2

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

  Stats: 2575 lines in 102 files changed: 1741 ins; 370 del; 464 mod
  Patch: https://git.openjdk.org/jdk/pull/10230.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10230/head:pull/10230

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

Reply via email to