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