* @throws IllegalArgumentException {@inheritDoc}
*/
public int drainTo(Collection super E> c, int maxElements) {
- if (c == null)
- throw new NullPointerException();
+ Objects.requireNonNull(c);
if (c == this)
throw new IllegalArgumentException();
if (maxElements <= 0)
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/SynchronousQueue.java b/jdk/src/java.base/share/classes/java/util/concurrent/SynchronousQueue.java
index e12d7afecc6..165198f97f8 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/SynchronousQueue.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/SynchronousQueue.java
@@ -42,6 +42,7 @@ import java.util.AbstractQueue;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.Objects;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.concurrent.locks.LockSupport;
@@ -75,9 +76,8 @@ import java.util.concurrent.locks.ReentrantLock;
* is not guaranteed. However, a queue constructed with fairness set
* to {@code true} grants threads access in FIFO order.
*
- * This class and its iterator implement all of the
- * optional methods of the {@link Collection} and {@link
- * Iterator} interfaces.
+ *
This class and its iterator implement all of the optional
+ * methods of the {@link Collection} and {@link Iterator} interfaces.
*
*
This class is a member of the
*
@@ -1112,15 +1112,12 @@ public class SynchronousQueue extends AbstractQueue
* @throws IllegalArgumentException {@inheritDoc}
*/
public int drainTo(Collection super E> c) {
- if (c == null)
- throw new NullPointerException();
+ Objects.requireNonNull(c);
if (c == this)
throw new IllegalArgumentException();
int n = 0;
- for (E e; (e = poll()) != null;) {
+ for (E e; (e = poll()) != null; n++)
c.add(e);
- ++n;
- }
return n;
}
@@ -1131,15 +1128,12 @@ public class SynchronousQueue extends AbstractQueue
* @throws IllegalArgumentException {@inheritDoc}
*/
public int drainTo(Collection super E> c, int maxElements) {
- if (c == null)
- throw new NullPointerException();
+ Objects.requireNonNull(c);
if (c == this)
throw new IllegalArgumentException();
int n = 0;
- for (E e; n < maxElements && (e = poll()) != null;) {
+ for (E e; n < maxElements && (e = poll()) != null; n++)
c.add(e);
- ++n;
- }
return n;
}
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java
index e76f2d10597..cfc676aa39a 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java
@@ -1059,17 +1059,17 @@ public class ThreadLocalRandom extends Random {
static {
try {
SEED = U.objectFieldOffset
- (Thread.class.getDeclaredField("threadLocalRandomSeed"));
+ (Thread.class.getDeclaredField("threadLocalRandomSeed"));
PROBE = U.objectFieldOffset
- (Thread.class.getDeclaredField("threadLocalRandomProbe"));
+ (Thread.class.getDeclaredField("threadLocalRandomProbe"));
SECONDARY = U.objectFieldOffset
- (Thread.class.getDeclaredField("threadLocalRandomSecondarySeed"));
+ (Thread.class.getDeclaredField("threadLocalRandomSecondarySeed"));
THREADLOCALS = U.objectFieldOffset
- (Thread.class.getDeclaredField("threadLocals"));
+ (Thread.class.getDeclaredField("threadLocals"));
INHERITABLETHREADLOCALS = U.objectFieldOffset
- (Thread.class.getDeclaredField("inheritableThreadLocals"));
+ (Thread.class.getDeclaredField("inheritableThreadLocals"));
INHERITEDACCESSCONTROLCONTEXT = U.objectFieldOffset
- (Thread.class.getDeclaredField("inheritedAccessControlContext"));
+ (Thread.class.getDeclaredField("inheritedAccessControlContext"));
} catch (ReflectiveOperationException e) {
throw new Error(e);
}
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java b/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java
index b1e40a338b9..7bf6e8a54cd 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java
@@ -425,11 +425,11 @@ public class LockSupport {
static {
try {
PARKBLOCKER = U.objectFieldOffset
- (Thread.class.getDeclaredField("parkBlocker"));
+ (Thread.class.getDeclaredField("parkBlocker"));
SECONDARY = U.objectFieldOffset
- (Thread.class.getDeclaredField("threadLocalRandomSecondarySeed"));
+ (Thread.class.getDeclaredField("threadLocalRandomSecondarySeed"));
TID = U.objectFieldOffset
- (Thread.class.getDeclaredField("tid"));
+ (Thread.class.getDeclaredField("tid"));
} catch (ReflectiveOperationException e) {
throw new Error(e);
diff --git a/jdk/test/java/util/AbstractList/CheckForComodification.java b/jdk/test/java/util/AbstractList/CheckForComodification.java
index 06578d8aa82..9769ec3a91d 100644
--- a/jdk/test/java/util/AbstractList/CheckForComodification.java
+++ b/jdk/test/java/util/AbstractList/CheckForComodification.java
@@ -35,7 +35,7 @@ import java.util.*;
public class CheckForComodification {
private static final int LENGTH = 10;
public static void main(String[] args) throws Exception {
- List list = new ArrayList();
+ List list = new ArrayList<>();
for (int i = 0; i < LENGTH; i++)
list.add(i);
try {
diff --git a/jdk/test/java/util/ArrayList/Bug6533203.java b/jdk/test/java/util/ArrayList/Bug6533203.java
index d4f56f55586..8c85c5bfe17 100644
--- a/jdk/test/java/util/ArrayList/Bug6533203.java
+++ b/jdk/test/java/util/ArrayList/Bug6533203.java
@@ -32,7 +32,7 @@ import java.util.*;
@SuppressWarnings({"serial","unchecked"})
public class Bug6533203 {
void test(String[] args) throws Throwable {
- final List superstitious = new ArrayList() {
+ final List superstitious = new ArrayList<>() {
public void add(int index, Integer i) {
if (i == 13) throw new Error("unlucky");
else super.add(index, i); }};
diff --git a/jdk/test/java/util/ArrayList/IteratorMicroBenchmark.java b/jdk/test/java/util/ArrayList/IteratorMicroBenchmark.java
index 03d0e3da204..11c617d4ac4 100644
--- a/jdk/test/java/util/ArrayList/IteratorMicroBenchmark.java
+++ b/jdk/test/java/util/ArrayList/IteratorMicroBenchmark.java
@@ -209,8 +209,8 @@ public class IteratorMicroBenchmark {
// iterations, size, warmupSeconds, filter);
final ConcurrentSkipListMap m
- = new ConcurrentSkipListMap();
- final ArrayList al = new ArrayList(size);
+ = new ConcurrentSkipListMap<>();
+ final ArrayList al = new ArrayList<>(size);
// Populate collections with random data
final ThreadLocalRandom rnd = ThreadLocalRandom.current();
@@ -218,16 +218,16 @@ public class IteratorMicroBenchmark {
m.put(rnd.nextInt(size), rnd.nextInt(size));
al.add(rnd.nextInt(size));
}
- final Vector v = new Vector(al);
- final ArrayDeque ad = new ArrayDeque(al);
+ final Vector v = new Vector<>(al);
+ final ArrayDeque ad = new ArrayDeque<>(al);
// shuffle ArrayDeque elements so they wrap
for (int i = 0, n = rnd.nextInt(size); i < n; i++)
ad.addLast(ad.removeFirst());
// Also test "short" collections
final int shortSize = 5;
- final Vector sv = new Vector(v.subList(0, shortSize));
- final ArrayList sal = new ArrayList(sv);
+ final Vector sv = new Vector<>(v.subList(0, shortSize));
+ final ArrayList sal = new ArrayList<>(sv);
// Checks for correctness *and* prevents loop optimizations
class Check {
@@ -613,8 +613,7 @@ public class IteratorMicroBenchmark {
public void work() throws Throwable {
for (int i = 0; i < iterations; i++) {
int sum = 0;
- List> its
- = new ArrayList>(2);
+ List> its = new ArrayList<>(2);
its.add(v.iterator());
its.add(al.iterator());
for (int k = 0; its.get(k).hasNext(); k = (k == 0) ? 1 : 0)
diff --git a/jdk/test/java/util/ArrayList/RangeCheckMicroBenchmark.java b/jdk/test/java/util/ArrayList/RangeCheckMicroBenchmark.java
index 7e9d959457f..eeaecb8716f 100644
--- a/jdk/test/java/util/ArrayList/RangeCheckMicroBenchmark.java
+++ b/jdk/test/java/util/ArrayList/RangeCheckMicroBenchmark.java
@@ -159,7 +159,7 @@ public class RangeCheckMicroBenchmark {
final int size = intArg(args, "size", 1000);
final Pattern filter = patternArg(args, "filter");
- final ArrayList list = new ArrayList();
+ final ArrayList list = new ArrayList<>();
final Random rnd = new Random();
for (int i = 0; i < size; i++)
list.add(rnd.nextInt());
diff --git a/jdk/test/java/util/Collection/IteratorMicroBenchmark.java b/jdk/test/java/util/Collection/IteratorMicroBenchmark.java
index 263da155710..e0d98210e5d 100644
--- a/jdk/test/java/util/Collection/IteratorMicroBenchmark.java
+++ b/jdk/test/java/util/Collection/IteratorMicroBenchmark.java
@@ -255,7 +255,7 @@ public class IteratorMicroBenchmark {
// "iterations=%d size=%d, warmup=%1g, filter=\"%s\"%n",
// iterations, size, warmupSeconds, filter);
- final ArrayList al = new ArrayList(size);
+ final ArrayList al = new ArrayList<>(size);
// Populate collections with random data
final ThreadLocalRandom rnd = ThreadLocalRandom.current();
@@ -307,14 +307,14 @@ public class IteratorMicroBenchmark {
for (Integer n : x)
sum += n;
check.sum(sum);}}},
- new Job(klazz + " .iterator().forEachRemaining()") {
+ new Job(klazz + " iterator().forEachRemaining()") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
sum[0] = 0;
x.iterator().forEachRemaining(n -> sum[0] += n);
check.sum(sum[0]);}}},
- new Job(klazz + " .spliterator().tryAdvance()") {
+ new Job(klazz + " spliterator().tryAdvance()") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
@@ -322,28 +322,49 @@ public class IteratorMicroBenchmark {
Spliterator spliterator = x.spliterator();
do {} while (spliterator.tryAdvance(n -> sum[0] += n));
check.sum(sum[0]);}}},
- new Job(klazz + " .spliterator().forEachRemaining()") {
+ new Job(klazz + " spliterator().forEachRemaining()") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
sum[0] = 0;
x.spliterator().forEachRemaining(n -> sum[0] += n);
check.sum(sum[0]);}}},
- new Job(klazz + " .removeIf") {
+ new Job(klazz + " removeIf") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
sum[0] = 0;
- x.removeIf(n -> { sum[0] += n; return false; });
+ if (x.removeIf(n -> { sum[0] += n; return false; }))
+ throw new AssertionError();
check.sum(sum[0]);}}},
- new Job(klazz + " .forEach") {
+ new Job(klazz + " contains") {
+ public void work() throws Throwable {
+ int[] sum = new int[1];
+ Object y = new Object() {
+ public boolean equals(Object z) {
+ sum[0] += (int) z; return false; }};
+ for (int i = 0; i < iterations; i++) {
+ sum[0] = 0;
+ if (x.contains(y)) throw new AssertionError();
+ check.sum(sum[0]);}}},
+ new Job(klazz + " remove(Object)") {
+ public void work() throws Throwable {
+ int[] sum = new int[1];
+ Object y = new Object() {
+ public boolean equals(Object z) {
+ sum[0] += (int) z; return false; }};
+ for (int i = 0; i < iterations; i++) {
+ sum[0] = 0;
+ if (x.remove(y)) throw new AssertionError();
+ check.sum(sum[0]);}}},
+ new Job(klazz + " forEach") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
sum[0] = 0;
x.forEach(n -> sum[0] += n);
check.sum(sum[0]);}}},
- new Job(klazz + " .toArray()") {
+ new Job(klazz + " toArray()") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
@@ -351,7 +372,7 @@ public class IteratorMicroBenchmark {
for (Object o : x.toArray())
sum[0] += (Integer) o;
check.sum(sum[0]);}}},
- new Job(klazz + " .toArray(a)") {
+ new Job(klazz + " toArray(a)") {
public void work() throws Throwable {
Integer[] a = new Integer[x.size()];
int[] sum = new int[1];
@@ -361,7 +382,7 @@ public class IteratorMicroBenchmark {
for (Object o : a)
sum[0] += (Integer) o;
check.sum(sum[0]);}}},
- new Job(klazz + " .toArray(empty)") {
+ new Job(klazz + " toArray(empty)") {
public void work() throws Throwable {
Integer[] empty = new Integer[0];
int[] sum = new int[1];
@@ -370,12 +391,12 @@ public class IteratorMicroBenchmark {
for (Integer o : x.toArray(empty))
sum[0] += o;
check.sum(sum[0]);}}},
- new Job(klazz + " .stream().collect") {
+ new Job(klazz + " stream().collect") {
public void work() throws Throwable {
for (int i = 0; i < iterations; i++) {
check.sum(x.stream()
.collect(summingInt(e -> e)));}}},
- new Job(klazz + " .parallelStream().collect") {
+ new Job(klazz + " parallelStream().collect") {
public void work() throws Throwable {
for (int i = 0; i < iterations; i++) {
check.sum(x.parallelStream()
@@ -385,7 +406,7 @@ public class IteratorMicroBenchmark {
List dequeJobs(Deque x) {
String klazz = x.getClass().getSimpleName();
return List.of(
- new Job(klazz + " .descendingIterator() loop") {
+ new Job(klazz + " descendingIterator() loop") {
public void work() throws Throwable {
for (int i = 0; i < iterations; i++) {
int sum = 0;
@@ -393,7 +414,7 @@ public class IteratorMicroBenchmark {
while (it.hasNext())
sum += it.next();
check.sum(sum);}}},
- new Job(klazz + " .descendingIterator().forEachRemaining()") {
+ new Job(klazz + " descendingIterator().forEachRemaining()") {
public void work() throws Throwable {
int[] sum = new int[1];
for (int i = 0; i < iterations; i++) {
diff --git a/jdk/test/java/util/Collection/MOAT.java b/jdk/test/java/util/Collection/MOAT.java
index b007f69159e..2f89b2ddd1d 100644
--- a/jdk/test/java/util/Collection/MOAT.java
+++ b/jdk/test/java/util/Collection/MOAT.java
@@ -678,7 +678,7 @@ public class MOAT {
private static void testQueueAddRemove(final Queue q,
final Integer e) {
- final List originalContents = new ArrayList(q);
+ final List originalContents = new ArrayList<>(q);
final boolean isEmpty = q.isEmpty();
final boolean isList = (q instanceof List);
final List asList = isList ? (List) q : null;
@@ -1207,8 +1207,7 @@ public class MOAT {
private static void throwsConsistently(Class extends Throwable> k,
Iterable fs) {
- List> threw
- = new ArrayList>();
+ List> threw = new ArrayList<>();
for (Fun f : fs)
try { f.f(); threw.add(null); }
catch (Throwable t) {
@@ -1224,7 +1223,7 @@ public class MOAT {
final ConcurrentMap cm = (m instanceof ConcurrentMap)
? (ConcurrentMap) m
: null;
- List fs = new ArrayList();
+ List fs = new ArrayList<>();
fs.add(() -> check(! m.containsKey(null)));
fs.add(() -> equal(m.remove(null), null));
fs.add(() -> equal(m.get(null), null));
diff --git a/jdk/test/java/util/Collections/BigBinarySearch.java b/jdk/test/java/util/Collections/BigBinarySearch.java
index 24385e49368..d08dad2aa85 100644
--- a/jdk/test/java/util/Collections/BigBinarySearch.java
+++ b/jdk/test/java/util/Collections/BigBinarySearch.java
@@ -38,7 +38,7 @@ public class BigBinarySearch {
extends AbstractList
implements RandomAccess
{
- private Map m = new HashMap();
+ private Map m = new HashMap<>();
public Integer get(int i) {
if (i < 0) throw new IndexOutOfBoundsException(""+i);
diff --git a/jdk/test/java/util/Collections/Disjoint.java b/jdk/test/java/util/Collections/Disjoint.java
index fcf93b2c203..61b763806a7 100644
--- a/jdk/test/java/util/Collections/Disjoint.java
+++ b/jdk/test/java/util/Collections/Disjoint.java
@@ -42,7 +42,7 @@ public class Disjoint {
int x = 0;
for (int i = 0; i < N; i++) {
int size = rnd.nextInt(10) + 2;
- List list = new ArrayList(size);
+ List list = new ArrayList<>(size);
for (int j = 1; j < size; j++)
list.add(x++);
list.add(x);
diff --git a/jdk/test/java/util/Collections/RacingCollections.java b/jdk/test/java/util/Collections/RacingCollections.java
index 2948dd92c86..d95503b77f3 100644
--- a/jdk/test/java/util/Collections/RacingCollections.java
+++ b/jdk/test/java/util/Collections/RacingCollections.java
@@ -184,8 +184,7 @@ public class RacingCollections {
}
private static List