|
CSR :
|
Summary
-------
Remove `java.lang.Thread.stop()`.
Problem
-------
The no-arg `Thread.stop` method has been deprecated since JDK 1.2, deprecated for removal since JDK 18, and re-specified to throw `UnsupportedOperationException` unconditionally since JDK 20. It is time to finally remove the method.
Solution
--------
Remove `java.lang.Thread.stop()`.
Remove the "Java Thread Primitive Deprecation" page.
Update the specification of `java.lang.ThreadDeath` to not link to `Thread.stop`.
A release note is planned.
There is follow on docs work (guides, not specs) to ensure that all references to this method are removed.
Specification
-------------
Remove `java.lang.Thread.stop()`.
Change `java.lang.ThreadDeath` as follows:
```
* An instance of {@code ThreadDeath} was originally specified to be thrown
- * by a victim thread when "stopped" with {@link Thread#stop()}.
+ * by a victim thread when "stopped" with the {@link Thread} API.
*
- * @deprecated {@link Thread#stop()} was originally specified to "stop" a victim
- * thread by causing the victim thread to throw a {@code ThreadDeath}. It
- * was inherently unsafe and deprecated in an early JDK release. The ability
- * to "stop" a thread with {@code Thread.stop} has been removed and the
- * {@code Thread.stop} method changed to throw an exception. Consequently,
- * {@code ThreadDeath} is also deprecated, for removal.
+ * @deprecated {@code Thread} originally specified a "{@code stop}" method to stop a
+ * victim thread by causing the victim thread to throw a {@code ThreadDeath}. It
+ * was inherently unsafe and deprecated in an early JDK release. The stop method
+ * has since been removed and {@code ThreadDeath} is deprecated, for removal.
```