mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8289610: Degrade Thread.stop
Reviewed-by: rriggs, cjplummer, jpai, mchung, prr, mullan
This commit is contained in:
parent
05c8cabdad
commit
acd5bcfc88
26 changed files with 179 additions and 226 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -26,26 +26,19 @@
|
|||
package java.lang;
|
||||
|
||||
/**
|
||||
* An instance of {@code ThreadDeath} is thrown in the victim thread
|
||||
* when the (deprecated) {@link Thread#stop()} method is invoked.
|
||||
* An instance of {@code ThreadDeath} was originally specified to be thrown
|
||||
* by a victim thread when "stopped" with {@link Thread#stop()}.
|
||||
*
|
||||
* <p>An application should catch instances of this class only if it
|
||||
* must clean up after being terminated asynchronously. If
|
||||
* {@code ThreadDeath} is caught by a method, it is important that it
|
||||
* be rethrown so that the thread actually dies.
|
||||
*
|
||||
* <p>The {@linkplain ThreadGroup#uncaughtException top-level error
|
||||
* handler} does not print out a message if {@code ThreadDeath} is
|
||||
* never caught.
|
||||
*
|
||||
* <p>The class {@code ThreadDeath} is specifically a subclass of
|
||||
* {@code Error} rather than {@code Exception}, even though it is a
|
||||
* "normal occurrence", because many applications catch all
|
||||
* occurrences of {@code Exception} and then discard the exception.
|
||||
* @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.
|
||||
*
|
||||
* @since 1.0
|
||||
*/
|
||||
|
||||
@Deprecated(since="20", forRemoval=true)
|
||||
public class ThreadDeath extends Error {
|
||||
@java.io.Serial
|
||||
private static final long serialVersionUID = -4417128565033088268L;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue