[ 
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.

Reply via email to