You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2008/07/07 21:46:31 UTC

[jira] Resolved: (OPENJPA-653) Concurrency issue with query cache enabled

     [ https://issues.apache.org/jira/browse/OPENJPA-653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Albert Lee resolved OPENJPA-653.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2.0

> Concurrency issue with query cache enabled
> ------------------------------------------
>
>                 Key: OPENJPA-653
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-653
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: datacache
>    Affects Versions: 1.2.0
>            Reporter: Jeremy Bauer
>            Assignee: Michael Dick
>             Fix For: 1.2.0
>
>         Attachments: OPENJPA-653.patch
>
>
> A Java EE application with query result caching enabled and with many concurrent users is failing with a ConcurrentModificationException in org.apache.openjpa.datacache.QueryCacheStoreQuery.  Specifically, the failure is in the inner class.method CachingResultObjectProvider.checkFinished(Object, boolean) and occurs while iterating the _data TreeMap within the QueryResult constructor.  
> Examination of this method showed that the tree map is synchronized in the beginning of the method and then later when the  map is cleared in abortCaching().  It is not synchronized when a new QueryResult is constructed.  This allows a thread to iterate over the map (during the constructor) while another thread is modifying it.  

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