8023339: Refined Collection.removeIf UOE conditions
Reviewed-by: mduigou
Contributed-by: paul.sandoz@oracle.com
--- a/jdk/src/share/classes/java/util/Collection.java Fri Sep 27 10:21:04 2013 -0700
+++ b/jdk/src/share/classes/java/util/Collection.java Fri Sep 27 13:30:31 2013 -0700
@@ -379,8 +379,8 @@
/**
* Removes all of the elements of this collection that satisfy the given
- * predicate. Errors or runtime exceptions thrown by the predicate are
- * relayed to the caller.
+ * predicate. Errors or runtime exceptions thrown during iteration or by
+ * the predicate are relayed to the caller.
*
* @implSpec
* The default implementation traverses all elements of the collection using
@@ -393,9 +393,10 @@
* removed
* @return {@code true} if any elements were removed
* @throws NullPointerException if the specified filter is null
- * @throws UnsupportedOperationException if the {@code remove}
- * method is not supported by this collection's
- * {@link #iterator}
+ * @throws UnsupportedOperationException if elements cannot be removed
+ * from this collection. Implementations may throw this exception if a
+ * matching element cannot be removed or if, in general, removal is not
+ * supported.
* @since 1.8
*/
default boolean removeIf(Predicate<? super E> filter) {
--- a/jdk/test/java/util/Collection/MOAT.java Fri Sep 27 10:21:04 2013 -0700
+++ b/jdk/test/java/util/Collection/MOAT.java Fri Sep 27 13:30:31 2013 -0700
@@ -207,8 +207,8 @@
new Fun(){void f(){ it.next(); }});
try { it.remove(); }
- catch (IllegalStateException _) { pass(); }
- catch (UnsupportedOperationException _) { pass(); }
+ catch (IllegalStateException ignored) { pass(); }
+ catch (UnsupportedOperationException ignored) { pass(); }
catch (Throwable t) { unexpected(t); }
if (rnd.nextBoolean())
@@ -280,9 +280,9 @@
testEmptyCollection(m.values());
try { check(! m.containsValue(null)); }
- catch (NullPointerException _) { /* OK */ }
+ catch (NullPointerException ignored) { /* OK */ }
try { check(! m.containsKey(null)); }
- catch (NullPointerException _) { /* OK */ }
+ catch (NullPointerException ignored) { /* OK */ }
check(! m.containsValue(1));
check(! m.containsKey(1));
}
@@ -710,8 +710,8 @@
l.addAll(-1, Collections.<Integer>emptyList());
fail("Expected IndexOutOfBoundsException not thrown");
}
- catch (UnsupportedOperationException _) {/* OK */}
- catch (IndexOutOfBoundsException _) {/* OK */}
+ catch (UnsupportedOperationException ignored) {/* OK */}
+ catch (IndexOutOfBoundsException ignored) {/* OK */}
catch (Throwable t) { unexpected(t); }
// equal(l instanceof Serializable,