--- jsr166/src/test/tck/ConcurrentLinkedDequeTest.java 2017/10/22 21:52:58 1.31 +++ jsr166/src/test/tck/ConcurrentLinkedDequeTest.java 2019/08/13 00:54:51 1.34 @@ -662,9 +662,11 @@ public class ConcurrentLinkedDequeTest e */ public void testToArray() { ConcurrentLinkedDeque q = populatedDeque(SIZE); - Object[] o = q.toArray(); - for (int i = 0; i < o.length; i++) - assertSame(o[i], q.poll()); + Object[] a = q.toArray(); + assertSame(Object[].class, a.getClass()); + for (Object o : a) + assertSame(o, q.poll()); + assertTrue(q.isEmpty()); } /** @@ -675,8 +677,9 @@ public class ConcurrentLinkedDequeTest e Integer[] ints = new Integer[SIZE]; Integer[] array = q.toArray(ints); assertSame(ints, array); - for (int i = 0; i < ints.length; i++) - assertSame(ints[i], q.poll()); + for (Integer o : ints) + assertSame(o, q.poll()); + assertTrue(q.isEmpty()); } /** @@ -685,7 +688,7 @@ public class ConcurrentLinkedDequeTest e public void testToArray_NullArg() { ConcurrentLinkedDeque q = populatedDeque(SIZE); try { - q.toArray(null); + q.toArray((Object[])null); shouldThrow(); } catch (NullPointerException success) {} } @@ -910,7 +913,7 @@ public class ConcurrentLinkedDequeTest e } void runAsync(Runnable r1, Runnable r2) { - boolean b = ThreadLocalRandom.current().nextBoolean(); + boolean b = randomBoolean(); CompletableFuture f1 = CompletableFuture.runAsync(b ? r1 : r2); CompletableFuture f2 = CompletableFuture.runAsync(b ? r2 : r1); f1.join();