--- jsr166/src/test/tck/ConcurrentLinkedDequeTest.java 2018/05/28 21:19:50 1.32 +++ jsr166/src/test/tck/ConcurrentLinkedDequeTest.java 2019/12/16 21:13:07 1.36 @@ -688,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) {} } @@ -913,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(); @@ -976,10 +976,6 @@ public class ConcurrentLinkedDequeTest e } } - T chooseRandomly(T... choices) { - return choices[ThreadLocalRandom.current().nextInt(choices.length)]; - } - /** * Non-traversing Deque operations (that return null) are linearizable. * Don't return null when the deque is observably never empty. @@ -987,7 +983,6 @@ public class ConcurrentLinkedDequeTest e * ant -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ConcurrentLinkedDequeTest -Djsr166.methodFilter=testBug8189387 tck */ public void testBug8189387() { - final ThreadLocalRandom rnd = ThreadLocalRandom.current(); Object x = new Object(); for (int n = expensiveTests ? 100_000 : 10; n--> 0; ) { ConcurrentLinkedDeque d = new ConcurrentLinkedDeque<>();