On Thu, 2 Mar 2023 14:13:10 GMT, Alan Bateman <al...@openjdk.org> wrote:
>> ### Description >> The use of `ThreadDeath` is replaced with checking the exception be of type >> `Error` and the thread is `TERMINATED`. >> >> >> ### Test >> local and mach5 tier1 > > test/lib/jdk/test/lib/process/ProcessTools.java line 827: > >> 825: >> 826: public void uncaughtException(Thread t, Throwable e) { >> 827: if (e instanceof Error && t.getState() == State.TERMINATED) >> { > > Dropping the check for ThreadDeath is fine but checking the thread state is > puzzling. When a Thread completes with an uncaught exception/error then the > UHE is called from the thread before it terminates so it's state won't be > TERMINATED. Is there more going on here that the UHE is called with an > already terminated Thread? I assumed the `ThreadDeath` was there to catch `Thread.stop()` calls and just ignore them. So, I wanted to keep this functionality. Can we remove using `ThreadDeath` relying on that `Thread.stop()` is also deprecated? ------------- PR: https://git.openjdk.org/jdk/pull/12827