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