8053938: Collections.checkedList(empty list).replaceAll((UnaryOperator)null) doesn't throw NPE after JDK-8047795
Reviewed-by: rriggs, mduigou
This commit is contained in:
parent
c5d6fb2678
commit
343fd87ea8
jdk
@ -3486,6 +3486,7 @@ public class Collections {
|
||||
*/
|
||||
@Override
|
||||
public void replaceAll(UnaryOperator<E> operator) {
|
||||
Objects.requireNonNull(operator);
|
||||
list.replaceAll(e -> typeCheck(operator.apply(e)));
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8047795
|
||||
* @bug 8047795 8053938
|
||||
* @summary Ensure that replaceAll operator cannot add bad elements
|
||||
* @author Mike Duigou
|
||||
*/
|
||||
@ -46,5 +46,16 @@ public class CheckedListReplaceAll {
|
||||
thwarted.printStackTrace(System.out);
|
||||
System.out.println("Curses! Foiled again!");
|
||||
}
|
||||
|
||||
unwrapped = Arrays.asList(new Object[]{}); // Empty list
|
||||
wrapped = Collections.checkedList(unwrapped, Integer.class);
|
||||
try {
|
||||
wrapped.replaceAll((UnaryOperator)null);
|
||||
System.out.printf("Bwahaha! I have defeated you! %s\n", wrapped);
|
||||
throw new RuntimeException("NPE not thrown when passed a null operator");
|
||||
} catch (NullPointerException thwarted) {
|
||||
thwarted.printStackTrace(System.out);
|
||||
System.out.println("Curses! Foiled again!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user