diff --git a/test/java/util/concurrent/Executors/PrivilegedCallables.java b/test/java/util/concurrent/Executors/PrivilegedCallables.java index a69041232f5690898eae011a5150cebf37982dfb..a77511e440d085b21ab633ef501c32ed80673db4 100644 --- a/test/java/util/concurrent/Executors/PrivilegedCallables.java +++ b/test/java/util/concurrent/Executors/PrivilegedCallables.java @@ -43,7 +43,8 @@ public class PrivilegedCallables { final Random rnd = new Random(); - @SuppressWarnings("serial") Throwable[] throwables = { + @SuppressWarnings("serial") + Throwable[] throwables = { new Exception() {}, new RuntimeException() {}, new Error() {} @@ -51,6 +52,11 @@ public class PrivilegedCallables { Throwable randomThrowable() { return throwables[rnd.nextInt(throwables.length)]; } + void throwThrowable(Throwable t) throws Exception { + if (t instanceof Error) throw (Error) t; + if (t instanceof RuntimeException) throw (RuntimeException) t; + throw (Exception) t; + } //---------------------------------------------------------------- // A Policy class designed to make permissions fiddling very easy. @@ -119,9 +125,8 @@ public class PrivilegedCallables { if (rnd.nextBoolean()) { final Throwable t = randomThrowable(); real = new Callable() { - @SuppressWarnings("deprecation") public Integer call() throws Exception { - Thread.currentThread().stop(t); + throwThrowable(t); return null; }}; try { c.call(); diff --git a/test/java/util/concurrent/FutureTask/Throw.java b/test/java/util/concurrent/FutureTask/Throw.java index 4182cdf1a0c39a072f1979d5f5a553d4184144a3..7bc442728ad218ffc13a52ad54914d6c67be7c92 100644 --- a/test/java/util/concurrent/FutureTask/Throw.java +++ b/test/java/util/concurrent/FutureTask/Throw.java @@ -31,10 +31,9 @@ import java.util.concurrent.*; public class Throw { - @SuppressWarnings("deprecation") static void THROW(final Throwable t) { if (t != null) - Thread.currentThread().stop(t); + Throw.uncheckedThrow(t); } Callable thrower(final Throwable t) { @@ -138,4 +137,8 @@ public class Throw { catch (Throwable t) { if (k.isAssignableFrom(t.getClass())) pass(); else unexpected(t);}} + @SuppressWarnings("unchecked") static + void uncheckedThrow(Throwable t) throws T { + throw (T)t; // rely on vacuous cast + } } diff --git a/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java b/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java index 7699d180005bb0d01c44f3d0d78fd6e54cdef318..1394a4c38edcd67b8b694ac19f66d7d70a02da0d 100644 --- a/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java +++ b/test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java @@ -101,8 +101,10 @@ public class ThrowingTasks { static class Thrower implements Runnable { Throwable t; Thrower(Throwable t) { this.t = t; } - @SuppressWarnings("deprecation") - public void run() { if (t != null) Thread.currentThread().stop(t); } + public void run() { + if (t != null) + ThrowingTasks.uncheckedThrow(t); + } } static final Thrower noThrower = new Thrower(null); @@ -265,4 +267,8 @@ public class ThrowingTasks { try {realMain(args);} catch (Throwable t) {unexpected(t);} System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); if (failed > 0) throw new AssertionError("Some tests failed");} + @SuppressWarnings("unchecked") static + void uncheckedThrow(Throwable t) throws T { + throw (T)t; // rely on vacuous cast + } } diff --git a/test/java/util/concurrent/locks/Lock/FlakyMutex.java b/test/java/util/concurrent/locks/Lock/FlakyMutex.java index e00cf4c612a8f55b13697ecef65dc83f045925f5..390f01d0f156348116dc8ff30e675d8b085ff670 100644 --- a/test/java/util/concurrent/locks/Lock/FlakyMutex.java +++ b/test/java/util/concurrent/locks/Lock/FlakyMutex.java @@ -37,7 +37,7 @@ import java.util.concurrent.locks.*; * tryAcquire method that randomly throws various Throwable * subclasses. */ -@SuppressWarnings({"deprecation", "serial"}) +@SuppressWarnings("serial") public class FlakyMutex implements Lock { static class MyError extends Error {} static class MyException extends Exception {} @@ -49,7 +49,7 @@ public class FlakyMutex implements Lock { switch (rnd.nextInt(10)) { case 0: throw new MyError(); case 1: throw new MyRuntimeException(); - case 2: Thread.currentThread().stop(new MyException()); break; + case 2: FlakyMutex.uncheckedThrow(new MyException()); default: /* Do nothing */ break; } } @@ -146,4 +146,8 @@ public class FlakyMutex implements Lock { try {realMain(args);} catch (Throwable t) {unexpected(t);} System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); if (failed > 0) throw new AssertionError("Some tests failed");} + @SuppressWarnings("unchecked") static + void uncheckedThrow(Throwable t) throws T { + throw (T)t; // rely on vacuous cast + } }