8203681: Miscellaneous changes imported from jsr166 CVS 2018-06
Reviewed-by: martin, psandoz
--- a/src/java.base/share/classes/java/util/concurrent/ArrayBlockingQueue.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/ArrayBlockingQueue.java Mon Jun 25 09:59:16 2018 -0700
@@ -1129,7 +1129,7 @@
final int len = items.length;
// how far takeIndex has advanced since the previous
// operation of this iterator
- long dequeues = (cycles - prevCycles) * len
+ long dequeues = (long) (cycles - prevCycles) * len
+ (takeIndex - prevTakeIndex);
// Check indices for invalidation
--- a/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListMap.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListMap.java Mon Jun 25 09:59:16 2018 -0700
@@ -1764,9 +1764,7 @@
}
return true;
}
- } catch (ClassCastException unused) {
- return false;
- } catch (NullPointerException unused) {
+ } catch (ClassCastException | NullPointerException unused) {
return false;
}
}
--- a/src/java.base/share/classes/java/util/concurrent/CopyOnWriteArrayList.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/CopyOnWriteArrayList.java Mon Jun 25 09:59:16 2018 -0700
@@ -34,6 +34,7 @@
package java.util.concurrent;
+import java.lang.invoke.VarHandle;
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Collection;
@@ -299,6 +300,9 @@
CopyOnWriteArrayList<E> clone =
(CopyOnWriteArrayList<E>) super.clone();
clone.resetLock();
+ // Unlike in readObject, here we cannot visibility-piggyback on the
+ // volatile write in setArray().
+ VarHandle.releaseFence();
return clone;
} catch (CloneNotSupportedException e) {
// this shouldn't happen, since we are Cloneable
--- a/src/java.base/share/classes/java/util/concurrent/ForkJoinTask.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/ForkJoinTask.java Mon Jun 25 09:59:16 2018 -0700
@@ -826,7 +826,7 @@
*/
public static <T extends ForkJoinTask<?>> Collection<T> invokeAll(Collection<T> tasks) {
if (!(tasks instanceof RandomAccess) || !(tasks instanceof List<?>)) {
- invokeAll(tasks.toArray(new ForkJoinTask<?>[tasks.size()]));
+ invokeAll(tasks.toArray(new ForkJoinTask<?>[0]));
return tasks;
}
@SuppressWarnings("unchecked")
--- a/src/java.base/share/classes/java/util/concurrent/TimeUnit.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/TimeUnit.java Mon Jun 25 09:59:16 2018 -0700
@@ -202,6 +202,10 @@
* {@code unit.convert(Duration.of(n, unit.toChronoUnit()))}
* is equivalent to {@code n} (in the absence of overflow).
*
+ * @apiNote
+ * This method differs from {@link Duration#toNanos()} in that it
+ * does not throw {@link ArithmeticException} on numeric overflow.
+ *
* @param duration the time duration
* @return the converted duration in this unit,
* or {@code Long.MIN_VALUE} if conversion would negatively overflow,
@@ -216,7 +220,7 @@
if (secs < 0 && nano > 0) {
// use representation compatible with integer division
secs++;
- nano -= SECOND_SCALE;
+ nano -= (int) SECOND_SCALE;
}
final long s, nanoVal;
// Optimize for the common case - NANOSECONDS without overflow
--- a/src/java.base/share/classes/java/util/concurrent/locks/Condition.java Mon Jun 25 09:59:16 2018 -0700
+++ b/src/java.base/share/classes/java/util/concurrent/locks/Condition.java Mon Jun 25 09:59:16 2018 -0700
@@ -312,13 +312,13 @@
* <pre> {@code
* boolean aMethod(long timeout, TimeUnit unit)
* throws InterruptedException {
- * long nanos = unit.toNanos(timeout);
+ * long nanosRemaining = unit.toNanos(timeout);
* lock.lock();
* try {
* while (!conditionBeingWaitedFor()) {
- * if (nanos <= 0L)
+ * if (nanosRemaining <= 0L)
* return false;
- * nanos = theCondition.awaitNanos(nanos);
+ * nanosRemaining = theCondition.awaitNanos(nanosRemaining);
* }
* // ...
* return true;
--- a/test/jdk/java/util/Collection/HotPotatoes.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/Collection/HotPotatoes.java Mon Jun 25 09:59:16 2018 -0700
@@ -70,7 +70,8 @@
System.out.printf("implClazz=%s, argClazz=%s\n",
implClazz.getName(), argClazz.getName());
final int iterations = 100000;
- final List<Integer> list = (List<Integer>) argClazz.newInstance();
+ final List<Integer> list = (List<Integer>)
+ argClazz.getDeclaredConstructor().newInstance();
final Integer one = Integer.valueOf(1);
final List<Integer> oneElementList = Collections.singletonList(one);
final Constructor<? extends Collection> constr
--- a/test/jdk/java/util/Collection/IteratorMicroBenchmark.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/Collection/IteratorMicroBenchmark.java Mon Jun 25 09:59:16 2018 -0700
@@ -325,7 +325,7 @@
}
@SafeVarargs @SuppressWarnings("varargs")
- private <T> Stream<T> concatStreams(Stream<T> ... streams) {
+ private static <T> Stream<T> concatStreams(Stream<T> ... streams) {
return Stream.of(streams).flatMap(s -> s);
}
--- a/test/jdk/java/util/Collection/RemoveMicroBenchmark.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/Collection/RemoveMicroBenchmark.java Mon Jun 25 09:59:16 2018 -0700
@@ -284,7 +284,7 @@
}
@SafeVarargs @SuppressWarnings("varargs")
- private <T> Stream<T> concatStreams(Stream<T> ... streams) {
+ private static <T> Stream<T> concatStreams(Stream<T> ... streams) {
return Stream.of(streams).flatMap(s -> s);
}
--- a/test/jdk/java/util/Map/LockStep.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/Map/LockStep.java Mon Jun 25 09:59:16 2018 -0700
@@ -28,7 +28,6 @@
* @key randomness
*/
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Hashtable;
@@ -104,23 +103,21 @@
final Random r = new Random();
for (int i = 0; i < iterations; i++) {
- List<Map> maps = Arrays.asList(
- new Map[] {
- new IdentityHashMap(11),
- new HashMap(16),
- new LinkedHashMap(16),
- new WeakHashMap(16),
- new Hashtable(16),
- new TreeMap(),
- new ConcurrentHashMap(16),
- new ConcurrentSkipListMap(),
- Collections.checkedMap(new HashMap(16), Integer.class, Integer.class),
- Collections.checkedSortedMap(new TreeMap(), Integer.class, Integer.class),
- Collections.checkedNavigableMap(new TreeMap(), Integer.class, Integer.class),
- Collections.synchronizedMap(new HashMap(16)),
- Collections.synchronizedSortedMap(new TreeMap()),
- Collections.synchronizedNavigableMap(new TreeMap())
- });
+ List<Map> maps = List.of(
+ new IdentityHashMap(11),
+ new HashMap(16),
+ new LinkedHashMap(16),
+ new WeakHashMap(16),
+ new Hashtable(16),
+ new TreeMap(),
+ new ConcurrentHashMap(16),
+ new ConcurrentSkipListMap(),
+ Collections.checkedMap(new HashMap(16), Integer.class, Integer.class),
+ Collections.checkedSortedMap(new TreeMap(), Integer.class, Integer.class),
+ Collections.checkedNavigableMap(new TreeMap(), Integer.class, Integer.class),
+ Collections.synchronizedMap(new HashMap(16)),
+ Collections.synchronizedSortedMap(new TreeMap()),
+ Collections.synchronizedNavigableMap(new TreeMap()));
for (int j = 0; j < 10; j++)
put(maps, r.nextInt(100), r.nextInt(100));
--- a/test/jdk/java/util/concurrent/ArrayBlockingQueue/WhiteBox.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/ArrayBlockingQueue/WhiteBox.java Mon Jun 25 09:59:16 2018 -0700
@@ -59,7 +59,6 @@
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.TimeUnit;
import java.util.function.BooleanSupplier;
@Test
--- a/test/jdk/java/util/concurrent/ConcurrentHashMap/MapCheck.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/ConcurrentHashMap/MapCheck.java Mon Jun 25 09:59:16 2018 -0700
@@ -109,7 +109,7 @@
static Map newMap(Class cl) {
try {
- return (Map)cl.newInstance();
+ return (Map)cl.getDeclaredConstructor().newInstance();
} catch (Exception e) {
throw new RuntimeException("Can't instantiate " + cl + ": " + e);
}
@@ -407,7 +407,7 @@
timer.start("Put (putAll) ", size * 2);
Map s2 = null;
try {
- s2 = (Map) (s.getClass().newInstance());
+ s2 = (Map) s.getClass().getDeclaredConstructor().newInstance();
s2.putAll(s);
}
catch (Exception e) { e.printStackTrace(); return; }
--- a/test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java Mon Jun 25 09:59:16 2018 -0700
@@ -156,7 +156,8 @@
static void test(int i, int nkeys, Class mapClass) throws Exception {
System.out.print("Threads: " + i + "\t:");
- Map<Integer, Integer> map = (Map<Integer,Integer>)mapClass.newInstance();
+ Map<Integer, Integer> map = (Map<Integer, Integer>)
+ mapClass.getDeclaredConstructor().newInstance();
Integer[] key = makeKeys(nkeys);
// Uncomment to start with a non-empty table
// for (int j = 0; j < nkeys; j += 4) // start 1/4 occupied
--- a/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java Mon Jun 25 09:59:16 2018 -0700
@@ -104,7 +104,8 @@
// warmup
System.out.println("Warmup...");
for (int k = 0; k < 2; ++k) {
- Map<Integer, Integer> map = (Map<Integer,Integer>)mapClass.newInstance();
+ Map<Integer, Integer> map = (Map<Integer, Integer>)
+ mapClass.getDeclaredConstructor().newInstance();
LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer();
CyclicBarrier barrier = new CyclicBarrier(1, timer);
new Runner(map, key, barrier, rnd.split()).run();
@@ -113,7 +114,8 @@
for (int i = 1; i <= maxThreads; i += (i+1) >>> 1) {
System.out.print("Threads: " + i + "\t:");
- Map<Integer, Integer> map = (Map<Integer,Integer>)mapClass.newInstance();
+ Map<Integer, Integer> map = (Map<Integer, Integer>)
+ mapClass.getDeclaredConstructor().newInstance();
LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer();
CyclicBarrier barrier = new CyclicBarrier(i+1, timer);
for (int k = 0; k < i; ++k)
--- a/test/jdk/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -251,8 +251,8 @@
assertTrue(c.await(timeoutMillis, MILLISECONDS));
break;
case awaitNanos:
- long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
- long nanosRemaining = c.awaitNanos(nanosTimeout);
+ long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
+ long nanosRemaining = c.awaitNanos(timeoutNanos);
assertTrue(nanosRemaining > 0);
break;
case awaitUntil:
@@ -279,8 +279,8 @@
break;
case awaitNanos:
startTime = System.nanoTime();
- long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
- long nanosRemaining = c.awaitNanos(nanosTimeout);
+ long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
+ long nanosRemaining = c.awaitNanos(timeoutNanos);
assertTrue(nanosRemaining <= 0);
assertTrue(nanosRemaining > -MILLISECONDS.toNanos(LONG_DELAY_MS));
assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
--- a/test/jdk/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -255,8 +255,8 @@
assertTrue(c.await(timeoutMillis, MILLISECONDS));
break;
case awaitNanos:
- long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
- long nanosRemaining = c.awaitNanos(nanosTimeout);
+ long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
+ long nanosRemaining = c.awaitNanos(timeoutNanos);
assertTrue(nanosRemaining > 0);
break;
case awaitUntil:
@@ -283,8 +283,8 @@
break;
case awaitNanos:
startTime = System.nanoTime();
- long nanosTimeout = MILLISECONDS.toNanos(timeoutMillis);
- long nanosRemaining = c.awaitNanos(nanosTimeout);
+ long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
+ long nanosRemaining = c.awaitNanos(timeoutNanos);
assertTrue(nanosRemaining <= 0);
assertTrue(nanosRemaining > -MILLISECONDS.toNanos(LONG_DELAY_MS));
assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
--- a/test/jdk/java/util/concurrent/tck/CompletableFutureTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/CompletableFutureTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -4415,7 +4415,7 @@
f.complete(null);
f = new CompletableFuture<>();
- CompletableFuture.anyOf(new CompletableFuture<?>[] { f, incomplete });
+ CompletableFuture.anyOf(f, incomplete);
f.complete(null);
}
@@ -4433,7 +4433,7 @@
f.complete(null);
f = new CompletableFuture<>();
- CompletableFuture.anyOf(new CompletableFuture<?>[] { incomplete, f });
+ CompletableFuture.anyOf(incomplete, f);
f.complete(null);
}
}
--- a/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/ConcurrentHashMap8Test.java Mon Jun 25 09:59:16 2018 -0700
@@ -200,8 +200,8 @@
static Set populatedSet(Integer[] elements) {
Set<Integer> a = ConcurrentHashMap.<Integer>newKeySet();
assertTrue(a.isEmpty());
- for (int i = 0; i < elements.length; i++)
- assertTrue(a.add(elements[i]));
+ for (Integer element : elements)
+ assertTrue(a.add(element));
assertFalse(a.isEmpty());
assertEquals(elements.length, a.size());
return a;
--- a/test/jdk/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -689,9 +689,11 @@
*/
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());
}
/**
@@ -702,8 +704,9 @@
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());
}
/**
--- a/test/jdk/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/ConcurrentLinkedQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -416,9 +416,11 @@
*/
public void testToArray() {
ConcurrentLinkedQueue q = populatedQueue(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());
}
/**
@@ -429,8 +431,9 @@
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());
}
/**
--- a/test/jdk/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/ConcurrentSkipListSetTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -483,9 +483,11 @@
*/
public void testToArray() {
ConcurrentSkipListSet q = populatedSet(SIZE);
- Object[] o = q.toArray();
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.pollFirst());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ for (Object o : a)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
@@ -495,8 +497,9 @@
ConcurrentSkipListSet<Integer> q = populatedSet(SIZE);
Integer[] ints = new Integer[SIZE];
assertSame(ints, q.toArray(ints));
- for (int i = 0; i < ints.length; i++)
- assertSame(ints[i], q.pollFirst());
+ for (Integer o : ints)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/ConcurrentSkipListSubSetTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -434,9 +434,11 @@
*/
public void testToArray() {
NavigableSet q = populatedSet(SIZE);
- Object[] o = q.toArray();
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.pollFirst());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ for (Object o : a)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
@@ -447,8 +449,9 @@
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.pollFirst());
+ for (Integer o : ints)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/DelayQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/DelayQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -593,10 +593,12 @@
*/
public void testToArray() throws InterruptedException {
DelayQueue q = populatedQueue(SIZE);
- Object[] o = q.toArray();
- Arrays.sort(o);
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.take());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ Arrays.sort(a);
+ for (Object o : a)
+ assertSame(o, q.take());
+ assertTrue(q.isEmpty());
}
/**
@@ -608,8 +610,9 @@
PDelay[] array = q.toArray(ints);
assertSame(ints, array);
Arrays.sort(ints);
- for (int i = 0; i < ints.length; i++)
- assertSame(ints[i], q.remove());
+ for (PDelay o : ints)
+ assertSame(o, q.remove());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/LinkedBlockingDequeTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/LinkedBlockingDequeTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -1570,9 +1570,11 @@
*/
public void testToArray() throws InterruptedException {
LinkedBlockingDeque 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());
}
/**
@@ -1583,8 +1585,9 @@
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.remove());
+ for (Integer o : ints)
+ assertSame(o, q.remove());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/LinkedBlockingQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/LinkedBlockingQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -656,9 +656,11 @@
*/
public void testToArray() {
LinkedBlockingQueue q = populatedQueue(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());
}
/**
@@ -669,8 +671,9 @@
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());
}
/**
--- a/test/jdk/java/util/concurrent/tck/LinkedListTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/LinkedListTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -385,9 +385,11 @@
*/
public void testToArray() {
LinkedList q = populatedQueue(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());
}
/**
@@ -398,8 +400,9 @@
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());
}
/**
--- a/test/jdk/java/util/concurrent/tck/LinkedTransferQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/LinkedTransferQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -502,10 +502,11 @@
*/
public void testToArray() {
LinkedTransferQueue q = populatedQueue(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());
}
/**
@@ -516,9 +517,9 @@
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());
}
/**
--- a/test/jdk/java/util/concurrent/tck/PriorityBlockingQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/PriorityBlockingQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -600,10 +600,12 @@
*/
public void testToArray() throws InterruptedException {
PriorityBlockingQueue q = populatedQueue(SIZE);
- Object[] o = q.toArray();
- Arrays.sort(o);
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.take());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ Arrays.sort(a);
+ for (Object o : a)
+ assertSame(o, q.take());
+ assertTrue(q.isEmpty());
}
/**
@@ -615,8 +617,9 @@
Integer[] array = q.toArray(ints);
assertSame(ints, array);
Arrays.sort(ints);
- for (int i = 0; i < ints.length; i++)
- assertSame(ints[i], q.take());
+ for (Integer o : ints)
+ assertSame(o, q.take());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/PriorityQueueTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/PriorityQueueTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -463,10 +463,12 @@
*/
public void testToArray() {
PriorityQueue q = populatedQueue(SIZE);
- Object[] o = q.toArray();
- Arrays.sort(o);
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.poll());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ Arrays.sort(a);
+ for (Object o : a)
+ assertSame(o, q.poll());
+ assertTrue(q.isEmpty());
}
/**
@@ -478,8 +480,9 @@
Integer[] array = q.toArray(ints);
assertSame(ints, array);
Arrays.sort(ints);
- for (int i = 0; i < ints.length; i++)
- assertSame(ints[i], q.poll());
+ for (Integer o : ints)
+ assertSame(o, q.poll());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/RecursiveActionTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/RecursiveActionTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -364,8 +364,8 @@
fibActions[4].cancel(true);
fibActions[5].completeExceptionally(new FJException());
- for (int i = 0; i < fibActions.length; i++)
- fibActions[i].fork();
+ for (FibAction fibAction : fibActions)
+ fibAction.fork();
sq.put(fibActions);
--- a/test/jdk/java/util/concurrent/tck/SubmissionPublisherTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/SubmissionPublisherTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -361,9 +361,7 @@
TestSubscriber s = new TestSubscriber();
SubmissionPublisher<Integer> p = basicPublisher();
s.throwOnCall = true;
- try {
- p.subscribe(s);
- } catch (Exception ok) {}
+ p.subscribe(s);
s.awaitError();
assertEquals(0, s.nexts);
assertEquals(1, s.errors);
--- a/test/jdk/java/util/concurrent/tck/TreeSetTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/TreeSetTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -481,9 +481,11 @@
*/
public void testToArray() {
TreeSet q = populatedSet(SIZE);
- Object[] o = q.toArray();
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.pollFirst());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ for (Object o : a)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
@@ -494,8 +496,9 @@
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.pollFirst());
+ for (Integer o : ints)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
--- a/test/jdk/java/util/concurrent/tck/TreeSubSetTest.java Mon Jun 25 09:59:16 2018 -0700
+++ b/test/jdk/java/util/concurrent/tck/TreeSubSetTest.java Mon Jun 25 09:59:16 2018 -0700
@@ -432,9 +432,11 @@
*/
public void testToArray() {
NavigableSet q = populatedSet(SIZE);
- Object[] o = q.toArray();
- for (int i = 0; i < o.length; i++)
- assertSame(o[i], q.pollFirst());
+ Object[] a = q.toArray();
+ assertSame(Object[].class, a.getClass());
+ for (Object o : a)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**
@@ -445,8 +447,9 @@
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.pollFirst());
+ for (Integer o : ints)
+ assertSame(o, q.pollFirst());
+ assertTrue(q.isEmpty());
}
/**