hg: jdk8/tl/jdk: 8008167: IdentityHashMap.[keySet|values|entrySet].toArray speed-up

Peter Levart peter.levart at gmail.com
Sun Feb 24 15:49:29 UTC 2013

Hi Alan,

I checked and it seems all 3 IHM views [keySet|values|entrySet] have a 
fail-fast iterator implementation 
(IdentityHashMap.IdentityHashMapIterator) and all 3 are (were) using the 
iterator for .toArray implementations. So this patch tries to preserve 
the behavior when there is a concurrent modification (which is only 
possible from other thread and is illegal usage anyway since IHM is not 
thread-safe) while executing the toArray methods on the views...

Do you see something I don't see?

Regards, Peter

On 02/24/2013 03:42 PM, Peter Levart wrote:
> Hi Alan,
> I think ConcurrentModificationException could be thrown previously 
> too, if the Map was modified from other thread while iterating using 
> iterator (fail-fast iterator). Will check this in detail when I'm back 
> at screen...
> Regards, Peter
> On Feb 24, 2013 2:25 PM, "Alan Bateman" <Alan.Bateman at oracle.com 
> <mailto:Alan.Bateman at oracle.com>> wrote:
>     On 14/02/2013 17:55, mike.duigou at oracle.com
>     <mailto:mike.duigou at oracle.com> wrote:
>         Changeset: e57019d2f34a
>         Author:    mduigou
>         Date:      2013-02-13 14:50 -0800
>         URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/e57019d2f34a
>         8008167: IdentityHashMap.[keySet|values|entrySet].toArray speed-up
>         Reviewed-by: mduigou, martin
>         Contributed-by: Peter Levart<peter.levary at gmail.com
>         <mailto:peter.levary at gmail.com>>
>         ! src/share/classes/java/util/IdentityHashMap.java
>     A belated comment on this is that CME will now be thrown for cases
>     where it wasn't previously. We need to make sure this behavior
>     change is tracked (for release notes, etc.).
>     -Alan

More information about the core-libs-dev mailing list