--- jsr166/src/test/tck/ForkJoinPoolTest.java 2009/11/21 20:10:48 1.12 +++ jsr166/src/test/tck/ForkJoinPoolTest.java 2010/10/11 04:39:12 1.32 @@ -4,18 +4,36 @@ * http://creativecommons.org/licenses/publicdomain */ - import junit.framework.*; -import java.util.*; -import java.util.concurrent.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.AbstractExecutorService; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.CancellationException; +import java.util.concurrent.RejectedExecutionException; +import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.ForkJoinTask; +import java.util.concurrent.ForkJoinWorkerThread; +import java.util.concurrent.RecursiveTask; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReentrantLock; import static java.util.concurrent.TimeUnit.MILLISECONDS; -import java.util.concurrent.locks.*; -import java.security.*; +import java.security.AccessControlException; +import java.security.Policy; +import java.security.PrivilegedAction; +import java.security.PrivilegedExceptionAction; public class ForkJoinPoolTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run (suite()); + junit.textui.TestRunner.run(suite()); } + public static Test suite() { return new TestSuite(ForkJoinPoolTest.class); } @@ -39,7 +57,7 @@ public class ForkJoinPoolTest extends JS // Some classes to test extension and factory methods static class MyHandler implements Thread.UncaughtExceptionHandler { - int catches = 0; + volatile int catches = 0; public void uncaughtException(Thread t, Throwable e) { ++catches; } @@ -48,12 +66,12 @@ public class ForkJoinPoolTest extends JS // to test handlers static class FailingFJWSubclass extends ForkJoinWorkerThread { public FailingFJWSubclass(ForkJoinPool p) { super(p) ; } - protected void onStart() { throw new Error(); } + protected void onStart() { super.onStart(); throw new Error(); } } static class FailingThreadFactory implements ForkJoinPool.ForkJoinWorkerThreadFactory { - int calls = 0; + volatile int calls = 0; public ForkJoinWorkerThread newThread(ForkJoinPool p) { if (++calls > 1) return null; return new FailingFJWSubclass(p); @@ -142,18 +160,16 @@ public class ForkJoinPoolTest extends JS * tasks, and quiescent running state. */ public void testDefaultInitialState() { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(1); try { - p = new ForkJoinPool(1); - assertTrue(p.getFactory() == - ForkJoinPool.defaultForkJoinWorkerThreadFactory); + assertSame(ForkJoinPool.defaultForkJoinWorkerThreadFactory, + p.getFactory()); assertTrue(p.isQuiescent()); - assertTrue(p.getMaintainsParallelism()); assertFalse(p.getAsyncMode()); - assertTrue(p.getActiveThreadCount() == 0); - assertTrue(p.getStealCount() == 0); - assertTrue(p.getQueuedTaskCount() == 0); - assertTrue(p.getQueuedSubmissionCount() == 0); + assertEquals(0, p.getActiveThreadCount()); + assertEquals(0, p.getStealCount()); + assertEquals(0, p.getQueuedTaskCount()); + assertEquals(0, p.getQueuedSubmissionCount()); assertFalse(p.hasQueuedSubmissions()); assertFalse(p.isShutdown()); assertFalse(p.isTerminating()); @@ -178,7 +194,7 @@ public class ForkJoinPoolTest extends JS */ public void testConstructor2() { try { - new ForkJoinPool(1, null); + new ForkJoinPool(1, null, null, false); shouldThrow(); } catch (NullPointerException success) {} } @@ -188,41 +204,9 @@ public class ForkJoinPoolTest extends JS * getParallelism returns size set in constructor */ public void testGetParallelism() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - assertTrue(p.getParallelism() == 1); - } finally { - joinPool(p); - } - } - - /** - * setParallelism changes reported parallelism level. - */ - public void testSetParallelism() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - assertTrue(p.getParallelism() == 1); - p.setParallelism(2); - assertTrue(p.getParallelism() == 2); - } finally { - joinPool(p); - } - } - - /** - * setParallelism with argument <= 0 throws exception - */ - public void testSetParallelism2() { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(1); try { - p = new ForkJoinPool(1); - assertTrue(p.getParallelism() == 1); - p.setParallelism(-2); - shouldThrow(); - } catch (IllegalArgumentException success) { + assertEquals(1, p.getParallelism()); } finally { joinPool(p); } @@ -232,72 +216,11 @@ public class ForkJoinPoolTest extends JS * getPoolSize returns number of started workers. */ public void testGetPoolSize() { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(1); try { - p = new ForkJoinPool(1); - assertTrue(p.getPoolSize() == 0); + assertEquals(0, p.getActiveThreadCount()); Future future = p.submit(new StringTask()); - assertTrue(p.getPoolSize() == 1); - - } finally { - joinPool(p); - } - } - - /** - * setMaximumPoolSize changes size reported by getMaximumPoolSize. - */ - public void testSetMaximumPoolSize() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - p.setMaximumPoolSize(2); - assertTrue(p.getMaximumPoolSize() == 2); - } finally { - joinPool(p); - } - } - - /** - * setMaximumPoolSize with argument <= 0 throws exception - */ - public void testSetMaximumPoolSize2() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - p.setMaximumPoolSize(-2); - shouldThrow(); - } catch (IllegalArgumentException success) { - } finally { - joinPool(p); - } - } - - /** - * setMaintainsParallelism changes policy reported by - * getMaintainsParallelism. - */ - public void testSetMaintainsParallelism() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - p.setMaintainsParallelism(false); - assertFalse(p.getMaintainsParallelism()); - } finally { - joinPool(p); - } - } - - /** - * setAsyncMode changes policy reported by - * getAsyncMode. - */ - public void testSetAsyncMode() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - p.setAsyncMode(true); - assertTrue(p.getAsyncMode()); + assertEquals(1, p.getPoolSize()); } finally { joinPool(p); } @@ -310,54 +233,42 @@ public class ForkJoinPoolTest extends JS * performs its defined action */ public void testSetUncaughtExceptionHandler() throws InterruptedException { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1, new FailingThreadFactory()); - MyHandler eh = new MyHandler(); - p.setUncaughtExceptionHandler(eh); - assertEquals(eh, p.getUncaughtExceptionHandler()); - p.execute(new FailingTask()); - Thread.sleep(MEDIUM_DELAY_MS); - assertTrue(eh.catches > 0); + final CountDownLatch uehInvoked = new CountDownLatch(1); + final Thread.UncaughtExceptionHandler eh = + new Thread.UncaughtExceptionHandler() { + public void uncaughtException(Thread t, Throwable e) { + uehInvoked.countDown(); + }}; + ForkJoinPool p = new ForkJoinPool(1, new FailingThreadFactory(), + eh, false); + try { + assertSame(eh, p.getUncaughtExceptionHandler()); + p.execute(new FibTask(8)); + assertTrue(uehInvoked.await(MEDIUM_DELAY_MS, MILLISECONDS)); } finally { + p.shutdownNow(); // failure might have prevented processing task joinPool(p); } } /** - * setUncaughtExceptionHandler of null removes handler - */ - public void testSetUncaughtExceptionHandler2() { - ForkJoinPool p = null; - try { - p = new ForkJoinPool(1); - p.setUncaughtExceptionHandler(null); - assertNull(p.getUncaughtExceptionHandler()); - } finally { - joinPool(p); - } - } - - - /** * After invoking a single task, isQuiescent is true, * queues are empty, threads are not active, and * construction parameters continue to hold */ public void testisQuiescent() throws InterruptedException { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(2); try { - p = new ForkJoinPool(2); + assertTrue(p.isQuiescent()); p.invoke(new FibTask(20)); - assertTrue(p.getFactory() == - ForkJoinPool.defaultForkJoinWorkerThreadFactory); - Thread.sleep(MEDIUM_DELAY_MS); + assertSame(ForkJoinPool.defaultForkJoinWorkerThreadFactory, + p.getFactory()); + Thread.sleep(SMALL_DELAY_MS); assertTrue(p.isQuiescent()); - assertTrue(p.getMaintainsParallelism()); assertFalse(p.getAsyncMode()); - assertTrue(p.getActiveThreadCount() == 0); - assertTrue(p.getQueuedTaskCount() == 0); - assertTrue(p.getQueuedSubmissionCount() == 0); + assertEquals(0, p.getActiveThreadCount()); + assertEquals(0, p.getQueuedTaskCount()); + assertEquals(0, p.getQueuedSubmissionCount()); assertFalse(p.hasQueuedSubmissions()); assertFalse(p.isShutdown()); assertFalse(p.isTerminating()); @@ -371,12 +282,10 @@ public class ForkJoinPoolTest extends JS * Completed submit(ForkJoinTask) returns result */ public void testSubmitForkJoinTask() throws Throwable { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(1); try { - p = new ForkJoinPool(1); ForkJoinTask f = p.submit(new FibTask(8)); - int r = f.get(); - assertTrue(r == 21); + assertEquals(21, (int) f.get()); } finally { joinPool(p); } @@ -386,14 +295,14 @@ public class ForkJoinPoolTest extends JS * A task submitted after shutdown is rejected */ public void testSubmitAfterShutdown() { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(1); try { - p = new ForkJoinPool(1); p.shutdown(); assertTrue(p.isShutdown()); - ForkJoinTask f = p.submit(new FibTask(8)); - shouldThrow(); - } catch (RejectedExecutionException success) { + try { + ForkJoinTask f = p.submit(new FibTask(8)); + shouldThrow(); + } catch (RejectedExecutionException success) {} } finally { joinPool(p); } @@ -403,16 +312,13 @@ public class ForkJoinPoolTest extends JS * Pool maintains parallelism when using ManagedBlocker */ public void testBlockingForkJoinTask() throws Throwable { - ForkJoinPool p = null; + ForkJoinPool p = new ForkJoinPool(4); try { - p = new ForkJoinPool(4); ReentrantLock lock = new ReentrantLock(); ManagedLocker locker = new ManagedLocker(lock); - ForkJoinTask f = new LockingFibTask(30, locker, lock); + ForkJoinTask f = new LockingFibTask(20, locker, lock); p.execute(f); - assertTrue(p.getPoolSize() >= 4); - int r = f.get(); - assertTrue(r == 832040); + assertEquals(6765, (int) f.get()); } finally { p.shutdownNow(); // don't wait out shutdown } @@ -422,12 +328,11 @@ public class ForkJoinPoolTest extends JS * pollSubmission returns unexecuted submitted task, if present */ public void testPollSubmission() { - SubFJP p = null; + SubFJP p = new SubFJP(); try { - p = new SubFJP(); - ForkJoinTask a = p.submit(new MediumRunnable()); - ForkJoinTask b = p.submit(new MediumRunnable()); - ForkJoinTask c = p.submit(new MediumRunnable()); + ForkJoinTask a = p.submit(new ShortRunnable()); + ForkJoinTask b = p.submit(new ShortRunnable()); + ForkJoinTask c = p.submit(new ShortRunnable()); ForkJoinTask r = p.pollSubmission(); assertTrue(r == a || r == b || r == c); assertFalse(r.isDone()); @@ -440,12 +345,11 @@ public class ForkJoinPoolTest extends JS * drainTasksTo transfers unexecuted submitted tasks, if present */ public void testDrainTasksTo() { - SubFJP p = null; + SubFJP p = new SubFJP(); try { - p = new SubFJP(); - ForkJoinTask a = p.submit(new MediumRunnable()); - ForkJoinTask b = p.submit(new MediumRunnable()); - ForkJoinTask c = p.submit(new MediumRunnable()); + ForkJoinTask a = p.submit(new ShortRunnable()); + ForkJoinTask b = p.submit(new ShortRunnable()); + ForkJoinTask c = p.submit(new ShortRunnable()); ArrayList al = new ArrayList(); p.drainTasksTo(al); assertTrue(al.size() > 0); @@ -466,11 +370,15 @@ public class ForkJoinPoolTest extends JS */ public void testExecuteRunnable() throws Throwable { ExecutorService e = new ForkJoinPool(1); - TrackedShortRunnable task = new TrackedShortRunnable(); - assertFalse(task.done); - Future future = e.submit(task); - future.get(); - assertTrue(task.done); + try { + TrackedRunnable task = trackedRunnable(SHORT_DELAY_MS); + assertFalse(task.isDone()); + Future future = e.submit(task); + future.get(); + assertTrue(task.isDone()); + } finally { + joinPool(e); + } } @@ -479,9 +387,13 @@ public class ForkJoinPoolTest extends JS */ public void testSubmitCallable() throws Throwable { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(new StringTask()); - String result = future.get(); - assertSame(TEST_STRING, result); + try { + Future future = e.submit(new StringTask()); + String result = future.get(); + assertSame(TEST_STRING, result); + } finally { + joinPool(e); + } } /** @@ -489,9 +401,13 @@ public class ForkJoinPoolTest extends JS */ public void testSubmitRunnable() throws Throwable { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(new NoOpRunnable()); - future.get(); - assertTrue(future.isDone()); + try { + Future future = e.submit(new NoOpRunnable()); + future.get(); + assertTrue(future.isDone()); + } finally { + joinPool(e); + } } /** @@ -499,9 +415,13 @@ public class ForkJoinPoolTest extends JS */ public void testSubmitRunnable2() throws Throwable { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(new NoOpRunnable(), TEST_STRING); - String result = future.get(); - assertSame(TEST_STRING, result); + try { + Future future = e.submit(new NoOpRunnable(), TEST_STRING); + String result = future.get(); + assertSame(TEST_STRING, result); + } finally { + joinPool(e); + } } @@ -519,17 +439,21 @@ public class ForkJoinPoolTest extends JS } catch (AccessControlException ok) { return; } + try { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(Executors.callable(new PrivilegedAction() { + try { + Future future = e.submit(Executors.callable(new PrivilegedAction() { public Object run() { return TEST_STRING; }})); - Object result = future.get(); - assertSame(TEST_STRING, result); - } - finally { + Object result = future.get(); + assertSame(TEST_STRING, result); + } finally { + joinPool(e); + } + } finally { Policy.setPolicy(savedPolicy); } } @@ -551,15 +475,18 @@ public class ForkJoinPoolTest extends JS try { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() { + try { + Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() { public Object run() { return TEST_STRING; }})); - Object result = future.get(); - assertSame(TEST_STRING, result); - } - finally { + Object result = future.get(); + assertSame(TEST_STRING, result); + } finally { + joinPool(e); + } + } finally { Policy.setPolicy(savedPolicy); } } @@ -579,18 +506,21 @@ public class ForkJoinPoolTest extends JS return; } - try { ExecutorService e = new ForkJoinPool(1); - Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() { + try { + Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() { public Object run() throws Exception { throw new IndexOutOfBoundsException(); }})); - Object result = future.get(); - shouldThrow(); - } catch (ExecutionException success) { - assertTrue(success.getCause() instanceof IndexOutOfBoundsException); + Object result = future.get(); + shouldThrow(); + } catch (ExecutionException success) { + assertTrue(success.getCause() instanceof IndexOutOfBoundsException); + } finally { + joinPool(e); + } } finally { Policy.setPolicy(savedPolicy); } @@ -600,12 +530,14 @@ public class ForkJoinPoolTest extends JS * execute(null runnable) throws NullPointerException */ public void testExecuteNullRunnable() { + ExecutorService e = new ForkJoinPool(1); try { - ExecutorService e = new ForkJoinPool(1); - TrackedShortRunnable task = null; - Future future = e.submit(task); + Future future = e.submit((Runnable) null); shouldThrow(); - } catch (NullPointerException success) {} + } catch (NullPointerException success) { + } finally { + joinPool(e); + } } @@ -613,40 +545,44 @@ public class ForkJoinPoolTest extends JS * submit(null callable) throws NullPointerException */ public void testSubmitNullCallable() { + ExecutorService e = new ForkJoinPool(1); try { - ExecutorService e = new ForkJoinPool(1); - StringTask t = null; - Future future = e.submit(t); + Future future = e.submit((Callable) null); shouldThrow(); - } catch (NullPointerException success) {} + } catch (NullPointerException success) { + } finally { + joinPool(e); + } } /** - * Blocking on submit(callable) throws InterruptedException if - * caller interrupted. + * submit(callable).get() throws InterruptedException if interrupted */ public void testInterruptedSubmit() throws InterruptedException { - final ForkJoinPool p = new ForkJoinPool(1); - - Thread t = new Thread(new CheckedInterruptedRunnable() { - void realRun() throws Throwable { - p.submit(new CheckedCallable() { - public Object realCall() throws Throwable { - try { - Thread.sleep(MEDIUM_DELAY_MS); - } catch (InterruptedException ok) { - } - return null; - }}).get(); - }}); - - t.start(); - Thread.sleep(SHORT_DELAY_MS); - t.interrupt(); - t.join(); - p.shutdownNow(); - joinPool(p); + final CountDownLatch submitted = new CountDownLatch(1); + final CountDownLatch quittingTime = new CountDownLatch(1); + final ExecutorService p = new ForkJoinPool(1); + final Callable awaiter = new CheckedCallable() { + public Void realCall() throws InterruptedException { + assertTrue(quittingTime.await(MEDIUM_DELAY_MS, MILLISECONDS)); + return null; + }}; + try { + Thread t = new Thread(new CheckedInterruptedRunnable() { + public void realRun() throws Exception { + Future future = p.submit(awaiter); + submitted.countDown(); + future.get(); + }}); + t.start(); + assertTrue(submitted.await(MEDIUM_DELAY_MS, MILLISECONDS)); + t.interrupt(); + t.join(); + } finally { + quittingTime.countDown(); + joinPool(p); + } } /** @@ -664,9 +600,9 @@ public class ForkJoinPoolTest extends JS shouldThrow(); } catch (ExecutionException success) { assertTrue(success.getCause() instanceof ArithmeticException); + } finally { + joinPool(p); } - - joinPool(p); } /** @@ -702,9 +638,9 @@ public class ForkJoinPoolTest extends JS */ public void testInvokeAny3() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(null); try { - ArrayList> l = new ArrayList>(); - l.add(null); e.invokeAny(l); shouldThrow(); } catch (NullPointerException success) { @@ -717,21 +653,17 @@ public class ForkJoinPoolTest extends JS * invokeAny(c) throws NullPointerException if c has null elements */ public void testInvokeAny4() throws Throwable { + CountDownLatch latch = new CountDownLatch(1); ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(latchAwaitingStringTask(latch)); + l.add(null); try { - ArrayList> l = new ArrayList>(); - l.add(new Callable() { - public String call() { - // The delay gives the pool a chance to notice - // the null element. - sleepTillInterrupted(SMALL_DELAY_MS); - return "foo"; - }}); - l.add(null); e.invokeAny(l); shouldThrow(); } catch (NullPointerException success) { } finally { + latch.countDown(); joinPool(e); } } @@ -741,9 +673,9 @@ public class ForkJoinPoolTest extends JS */ public void testInvokeAny5() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new NPETask()); try { - ArrayList> l = new ArrayList>(); - l.add(new NPETask()); e.invokeAny(l); shouldThrow(); } catch (ExecutionException success) { @@ -759,7 +691,7 @@ public class ForkJoinPoolTest extends JS public void testInvokeAny6() throws Throwable { ExecutorService e = new ForkJoinPool(1); try { - ArrayList> l = new ArrayList>(); + List> l = new ArrayList>(); l.add(new StringTask()); l.add(new StringTask()); String result = e.invokeAny(l); @@ -802,10 +734,10 @@ public class ForkJoinPoolTest extends JS */ public void testInvokeAll3() throws InterruptedException { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new StringTask()); + l.add(null); try { - ArrayList> l = new ArrayList>(); - l.add(new StringTask()); - l.add(null); e.invokeAll(l); shouldThrow(); } catch (NullPointerException success) { @@ -820,13 +752,12 @@ public class ForkJoinPoolTest extends JS */ public void testInvokeAll4() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new NPETask()); + List> futures = e.invokeAll(l); + assertEquals(1, futures.size()); try { - ArrayList> l = new ArrayList>(); - l.add(new NPETask()); - List> result = e.invokeAll(l); - assertEquals(1, result.size()); - for (Future future : result) - future.get(); + futures.get(0).get(); shouldThrow(); } catch (ExecutionException success) { assertTrue(success.getCause() instanceof NullPointerException); @@ -841,12 +772,12 @@ public class ForkJoinPoolTest extends JS public void testInvokeAll5() throws Throwable { ExecutorService e = new ForkJoinPool(1); try { - ArrayList> l = new ArrayList>(); + List> l = new ArrayList>(); l.add(new StringTask()); l.add(new StringTask()); - List> result = e.invokeAll(l); - assertEquals(2, result.size()); - for (Future future : result) + List> futures = e.invokeAll(l); + assertEquals(2, futures.size()); + for (Future future : futures) assertSame(TEST_STRING, future.get()); } finally { joinPool(e); @@ -873,9 +804,9 @@ public class ForkJoinPoolTest extends JS */ public void testTimedInvokeAnyNullTimeUnit() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new StringTask()); try { - ArrayList> l = new ArrayList>(); - l.add(new StringTask()); e.invokeAny(l, MEDIUM_DELAY_MS, null); shouldThrow(); } catch (NullPointerException success) { @@ -903,15 +834,17 @@ public class ForkJoinPoolTest extends JS * timed invokeAny(c) throws NullPointerException if c has null elements */ public void testTimedInvokeAny3() throws Throwable { + CountDownLatch latch = new CountDownLatch(1); ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(latchAwaitingStringTask(latch)); + l.add(null); try { - ArrayList> l = new ArrayList>(); - l.add(new StringTask()); - l.add(null); e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS); shouldThrow(); } catch (NullPointerException success) { } finally { + latch.countDown(); joinPool(e); } } @@ -921,9 +854,9 @@ public class ForkJoinPoolTest extends JS */ public void testTimedInvokeAny4() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new NPETask()); try { - ArrayList> l = new ArrayList>(); - l.add(new NPETask()); e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS); shouldThrow(); } catch (ExecutionException success) { @@ -939,7 +872,7 @@ public class ForkJoinPoolTest extends JS public void testTimedInvokeAny5() throws Throwable { ExecutorService e = new ForkJoinPool(1); try { - ArrayList> l = new ArrayList>(); + List> l = new ArrayList>(); l.add(new StringTask()); l.add(new StringTask()); String result = e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS); @@ -968,9 +901,9 @@ public class ForkJoinPoolTest extends JS */ public void testTimedInvokeAllNullTimeUnit() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new StringTask()); try { - ArrayList> l = new ArrayList>(); - l.add(new StringTask()); e.invokeAll(l, MEDIUM_DELAY_MS, null); shouldThrow(); } catch (NullPointerException success) { @@ -999,10 +932,10 @@ public class ForkJoinPoolTest extends JS */ public void testTimedInvokeAll3() throws InterruptedException { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new StringTask()); + l.add(null); try { - ArrayList> l = new ArrayList>(); - l.add(new StringTask()); - l.add(null); e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS); shouldThrow(); } catch (NullPointerException success) { @@ -1016,14 +949,13 @@ public class ForkJoinPoolTest extends JS */ public void testTimedInvokeAll4() throws Throwable { ExecutorService e = new ForkJoinPool(1); + List> l = new ArrayList>(); + l.add(new NPETask()); + List> futures + = e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS); + assertEquals(1, futures.size()); try { - ArrayList> l = new ArrayList>(); - l.add(new NPETask()); - List> result - = e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS); - assertEquals(1, result.size()); - for (Future future : result) - future.get(); + futures.get(0).get(); shouldThrow(); } catch (ExecutionException success) { assertTrue(success.getCause() instanceof NullPointerException); @@ -1038,13 +970,13 @@ public class ForkJoinPoolTest extends JS public void testTimedInvokeAll5() throws Throwable { ExecutorService e = new ForkJoinPool(1); try { - ArrayList> l = new ArrayList>(); + List> l = new ArrayList>(); l.add(new StringTask()); l.add(new StringTask()); - List> result + List> futures = e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS); - assertEquals(2, result.size()); - for (Future future : result) + assertEquals(2, futures.size()); + for (Future future : futures) assertSame(TEST_STRING, future.get()); } finally { joinPool(e);