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


Reply via email to