--- jsr166/src/test/tck/LinkedBlockingQueueTest.java 2014/12/31 20:17:39 1.56 +++ jsr166/src/test/tck/LinkedBlockingQueueTest.java 2015/01/17 22:55:06 1.57 @@ -634,9 +634,24 @@ public class LinkedBlockingQueueTest ext public void testIterator() throws InterruptedException { LinkedBlockingQueue q = populatedQueue(SIZE); Iterator it = q.iterator(); - while (it.hasNext()) { + int i; + for (i = 0; it.hasNext(); i++) + assertTrue(q.contains(it.next())); + assertEquals(i, SIZE); + assertIteratorExhausted(it); + + it = q.iterator(); + for (i = 0; it.hasNext(); i++) assertEquals(it.next(), q.take()); - } + assertEquals(i, SIZE); + assertIteratorExhausted(it); + } + + /** + * iterator of empty collection has no elements + */ + public void testEmptyIterator() { + assertIteratorExhausted(new LinkedBlockingQueue().iterator()); } /**