--- jsr166/src/test/tck/AbstractExecutorServiceTest.java 2011/05/28 22:33:35 1.31 +++ jsr166/src/test/tck/AbstractExecutorServiceTest.java 2011/05/29 07:01:17 1.32 @@ -9,8 +9,8 @@ import junit.framework.*; import java.util.*; import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; import static java.util.concurrent.TimeUnit.MILLISECONDS; -import java.math.BigInteger; import java.security.*; public class AbstractExecutorServiceTest extends JSR166TestCase { @@ -45,11 +45,17 @@ public class AbstractExecutorServiceTest */ public void testExecuteRunnable() throws Exception { ExecutorService e = new DirectExecutorService(); - TrackedShortRunnable task = new TrackedShortRunnable(); - assertFalse(task.done); + final AtomicBoolean done = new AtomicBoolean(false); + CheckedRunnable task = new CheckedRunnable() { + public void realRun() { + done.set(true); + }}; Future future = e.submit(task); - future.get(); - assertTrue(task.done); + assertNull(future.get()); + assertNull(future.get(0, MILLISECONDS)); + assertTrue(done.get()); + assertTrue(future.isDone()); + assertFalse(future.isCancelled()); } /** @@ -588,17 +594,12 @@ public class AbstractExecutorServiceTest l.add(new StringTask()); List> futures = e.invokeAll(l, SHORT_DELAY_MS, MILLISECONDS); - assertEquals(3, futures.size()); - Iterator> it = futures.iterator(); - Future f1 = it.next(); - Future f2 = it.next(); - Future f3 = it.next(); - assertTrue(f1.isDone()); - assertFalse(f1.isCancelled()); - assertTrue(f2.isDone()); - assertFalse(f2.isCancelled()); - assertTrue(f3.isDone()); - assertTrue(f3.isCancelled()); + assertEquals(l.size(), futures.size()); + for (Future future : futures) + assertTrue(future.isDone()); + assertFalse(futures.get(0).isCancelled()); + assertFalse(futures.get(1).isCancelled()); + assertTrue(futures.get(2).isCancelled()); } finally { joinPool(e); }