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.bate...@oracle.com
<mailto:alan.bate...@oracle.com>> wrote:
On 14/02/2013 17:55, mike.dui...@oracle.com
<mailto:mike.dui...@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.lev...@gmail.com
<mailto:peter.lev...@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