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

Matt Benson commented on COLLECTIONS-330:
-----------------------------------------

Correct, but the contract of the map permits this, as iteration order is based 
on RU concerns.  Calling {{get()}} restructures the underlying data because the 
current entry becomes the LRU entry and so the map is modified.  The answer, 
therefore, is not to call get() when testing iterator behavior per the contract 
of the map.  Commit forthcoming.

> 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
>            Reporter: Joerg Schaible
>             Fix For: 4.0-beta-1
>
>
> 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.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to