RFR: 8024688: j.u.Map.merge doesn't work as specified if contains key:null pair

Mike Duigou mike.duigou at oracle.com
Wed Oct 16 23:52:00 UTC 2013


On Oct 16 2013, at 05:34 , Paul Sandoz <paul.sandoz at oracle.com> wrote:

> On Oct 16, 2013, at 1:52 PM, David Holmes <david.holmes at oracle.com> wrote:
>>>> Perhaps HashMap's implementations should throw CME?
>>>> 
>>> 
>>> Perhaps, seems to be going beyond the call of duty. My inclination is not to bother. It becomes most relevant with forEach since the consumer will have side-effects that might make it easier to unintentionally slip in a modification to the map itself.
>> 
>> I think there is a lot to be said for consistency.
> 
> Yes, i was proposing to consistently not support it for non-traversal methods :-)


I have prepared an updated webrev removing all of the non-traversal CME throwing.

http://cr.openjdk.java.net/~mduigou/JDK-8024688/2/webrev/

It does bother me to be throwing out "good information" by not throwing the CMEs but I'm willing to go with the flow. As a practical matter later reintroduction of even valid error detection would almost certainly be difficult. (https://bugs.openjdk.java.net/browse/JDK-5045147 for one example).

The patch also fixes up missing @throws and @since from the ConcurrentMap implementations.

Mike




More information about the core-libs-dev mailing list