--- jsr166/src/test/tck/DelayQueueTest.java 2010/10/19 00:43:49 1.39 +++ jsr166/src/test/tck/DelayQueueTest.java 2010/11/03 07:54:52 1.42 @@ -391,17 +391,26 @@ public class DelayQueueTest extends JSR1 /** * take blocks interruptibly when empty */ - public void testTakeFromEmpty() throws InterruptedException { - final DelayQueue q = new DelayQueue(); - Thread t = new ThreadShouldThrow(InterruptedException.class) { - public void realRun() throws InterruptedException { - q.take(); - }}; - - t.start(); + public void testTakeFromEmptyBlocksInterruptibly() + throws InterruptedException { + final BlockingQueue q = new DelayQueue(); + final CountDownLatch threadStarted = new CountDownLatch(1); + Thread t = newStartedThread(new CheckedRunnable() { + public void realRun() { + long t0 = System.nanoTime(); + threadStarted.countDown(); + try { + q.take(); + shouldThrow(); + } catch (InterruptedException expected) {} + assertTrue(millisElapsedSince(t0) >= SHORT_DELAY_MS); + }}); + threadStarted.await(); Thread.sleep(SHORT_DELAY_MS); + assertTrue(t.isAlive()); t.interrupt(); - t.join(); + awaitTermination(t, MEDIUM_DELAY_MS); + assertFalse(t.isAlive()); } /** @@ -439,7 +448,7 @@ public class DelayQueueTest extends JSR1 } /** - * timed pool with zero timeout succeeds when non-empty, else times out + * timed poll with zero timeout succeeds when non-empty, else times out */ public void testTimedPoll0() throws InterruptedException { DelayQueue q = populatedQueue(SIZE); @@ -450,7 +459,7 @@ public class DelayQueueTest extends JSR1 } /** - * timed pool with nonzero timeout succeeds when non-empty, else times out + * timed poll with nonzero timeout succeeds when non-empty, else times out */ public void testTimedPoll() throws InterruptedException { DelayQueue q = populatedQueue(SIZE); @@ -695,12 +704,12 @@ public class DelayQueueTest extends JSR1 } /** - * toArray with incompatible array type throws CCE + * toArray(incompatible array type) throws ArrayStoreException */ public void testToArray1_BadArg() { DelayQueue q = populatedQueue(SIZE); try { - Object o[] = q.toArray(new String[10]); + q.toArray(new String[10]); shouldThrow(); } catch (ArrayStoreException success) {} }