RFR: 8047795: Collections.checkedList checking bypassed by List.replaceAll (original) (raw)

Mike Duigou mike.duigou at oracle.com
Tue Jun 24 18:06:03 UTC 2014


On Jun 24 2014, at 01:46 , Chris Hegarty <chris.hegarty at oracle.com> wrote:

Looks good to me Mike.

I agree with Paul’s comment that the javadoc change will never be seen in the public docs, but I still think it is a reasonable addition for future maintainers. Trivially, you should probably add @SuppressWarnings("unchecked”) to typeCheck(Object).

Done.

-Chris. On 24 Jun 2014, at 01:42, Mike Duigou <mike.duigou at oracle.com> wrote:

Hello all;

This changeset corrects a reported problem with the lists returned by Collections.checkedList(). Since Java 8 the replaceAll() method on checked lists has erroneously allowed the operator providing replacements to provide illegal replacement values which are then stored, unchecked into the wrapped list. This changeset adds a check on the proposed replacement value and throws a ClassCastException if the replacement value is incompatible with the list. Additionally the javadoc is updated to inform users that a ClassCastException may result if the proposed replacement is unacceptable. Note that this changeset takes the strategy of failing when the illegal value is encountered. Replacements of earlier items in the list are retained. jbsbug: https://bugs.openjdk.java.net/browse/JDK-8047795 webrev: http://cr.openjdk.java.net/~mduigou/JDK-8047795/0/webrev/ This change will be backported to Java 8. Mike



More information about the core-libs-dev mailing list