RFR 8071667 : HashMap.computeIfAbsent() adds entry that HashMap.get() does not find.

Brent Christian brent.christian at oracle.com
Wed Mar 18 17:46:41 UTC 2015


Hi,

Please review my changes for 8071667 : "HashMap.computeIfAbsent() adds 
entry that HashMap.get() does not find"

Bug:
https://bugs.openjdk.java.net/browse/JDK-8071667

Webrev+specdiff:
http://cr.openjdk.java.net/~bchristi/8071667/webrev.2/


The fix is to detect structural changes made by the mapping functions 
passed to compute() and friends, and to throw a 
ConcurrentModificationException.  This prevents possibly adding entries 
in the wrong hash bin.

I have updated the docs based on the prior discussion [1], making use of 
the new @implSpec/etc tags, as seemed sensible to me.  Suggestions welcome.


Automated test run is clean.  If the new docs look good, I'll start a CCC.

Thanks,
-Brent

1. 
http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-February/031245.html




More information about the core-libs-dev mailing list