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

Jerry Cwiklik closed UIMA-2414.
-------------------------------

    Resolution: Fixed

Modified Delegate class to lock access to outstanding CAS list. Removed 
getDelegateCasesPendingReply() as it returned the list to clients (callers) 
which led to the ConcurrentModificationException. Instead provided a new API 
the clients can call to get an array of CAS Ids that are outstanding. This 
approach localizes direct access to the outstanding CAS list.
                
> Fix ConcurrentModificationException in uima-as client
> -----------------------------------------------------
>
>                 Key: UIMA-2414
>                 URL: https://issues.apache.org/jira/browse/UIMA-2414
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>    Affects Versions: 2.3.1AS
>            Reporter: Jerry Cwiklik
>             Fix For: 2.4.0AS
>
>
> The uima-as client throws 
> org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngineCommon_impl WARN 
>  2012-05-25 01:08:41,391 [BaseUIMAAsynchronousEngineCommon_impl$2.2] - 
> java.util.ConcurrentModificationException        at 
> java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64)        
> at 
> org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngineCommon_impl.handleServiceInfo(BaseUIMAAsynchronousEngineCommon_impl.java:1121)
>  
> while handling ServiceInfo message from a remote service. The service sends 
> this message right after it picks up a request msg from a queue and before 
> calling AE's process method. The msg includes service host ip, process PID, 
> and a service temp queue for receiving FreeCas requests (if the service is a 
> CM). This temp queue is also used by the client to send a a Stop request to 
> the CM to abort generation of child CASes. The above exception happens while 
> iterating over a list of outstanding CASes. The code is trying to locate a 
> matching CAS (by id) and to associate with it  received temp reply queue in 
> case application wants to abort the CAS. Access to the list is not 
> synchronized in this case and causes the exception. Refactor client code to 
> prevent concurrent access to the list. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to