You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Edgar Poce (JIRA)" <ji...@apache.org> on 2006/06/16 01:12:31 UTC
[jira] Assigned: (JCR-412) JCA Concurrent Modification Exception
when JCAManagedConnection.cleanup() called
[ http://issues.apache.org/jira/browse/JCR-412?page=all ]
Edgar Poce reassigned JCR-412:
------------------------------
Assign To: Edgar Poce
> 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