[ http://issues.apache.org/jira/browse/JCR-412?page=all ]
Edgar Poce resolved JCR-412:
----------------------------
Resolution: Fixed
thanks for reporting the issue Ross.
> JCA Concurrent Modification Exception when JCAManagedConnection.cleanup() called
> --------------------------------------------------------------------------------
>
> Key: JCR-412
> URL: http://issues.apache.org/jira/browse/JCR-412
> Project: Jackrabbit
> Type: Bug
> Components: jca
> Versions: 1.0
> Environment: JDK1.4.2
> SunOne AppServer 7
> Reporter: Ross Black
> Assignee: Edgar Poce
> Priority: Minor
>
> The JCAManagedConnection.closeHandles() method causes a ConcurrentModificationException
if the handles list is not empty.
> This is caused by modification of the handles list by removeHandle(), while closeHandles()
is iterating over the list.
> Under SunOne AppServer 7 this can be caused simply by not closing the Session handle
before the transaction commits.
> It is probably not even necessary to send connectionClosed events during cleanup().
According to the API for connectionClosed, the event indicates that an application component
has closed the connection handle. cleanup() is a container initiated action, and so the
connectionClosed event is not applicable.
> java.util.ConcurrentModificationException
> at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:552)
> at java.util.LinkedList$ListItr.next(LinkedList.java:488)
> at org.apache.jackrabbit.jca.JCAManagedConnection.closeHandles(JCAManagedConnection.java:382)
> at org.apache.jackrabbit.jca.JCAManagedConnection.cleanup(JCAManagedConnection.java:145)
> at com.sun.enterprise.resource.IASPoolObjectImp.cleanup(IASPoolObjectImp.java:243)
> at com.sun.enterprise.resource.IASGenericPoolObjects.transactionCompleted(IASGenericPoolObjects.java:794)
> at com.sun.enterprise.resource.ResourcePoolManagerImpl.transactionCompleted(ResourcePoolManagerImpl.java:347)
> at com.sun.enterprise.resource.ResourcePoolManagerImpl$SynchronizationListener.afterCompletion(ResourcePoolManagerImpl.java:644)
> at com.sun.jts.jta.SynchronizationImpl.after_completion(SynchronizationImpl.java:70)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira