commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COLLECTIONS-330) ConcurrentModificationException using remove from the keySet the LRUMap
Date Thu, 18 Jun 2009 10:47:07 GMT

    [ https://issues.apache.org/jira/browse/COLLECTIONS-330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12721177#action_12721177
] 

Sebb commented on COLLECTIONS-330:
----------------------------------

Your fix was different from mine - I just added iter.next(), so the code became:

{code}
iter.next();
if (map.get(iter.getValue()) == this) {
     iter.remove();
}
{code}

which works fine.

However the current code is:

{code}
String name = (String)iter.next();
if (map.get(name) == this) {
    iter.remove();
}
{code}

which fails.

> ConcurrentModificationException using remove from the keySet the LRUMap
> -----------------------------------------------------------------------
>
>                 Key: COLLECTIONS-330
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-330
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Collection
>    Affects Versions: 3.3
>            Reporter: Joerg Schaible
>
> Even if the access to a LRUMap is synced and the remove method of the iterator is used
that has been returned from the keySet of the LRUMap, it is possible to get a ConcurrentModificationException.
This does not happen for remove of the iterators returned by the entrySet or values of the
LRUMap. See currently not executed unit test in TestLRUMap (marked as TODO for COLLECTION-3).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message