jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edgar Poce (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (JCR-412) JCA Concurrent Modification Exception when JCAManagedConnection.cleanup() called
Date Thu, 15 Jun 2006 23:12:31 GMT
     [ 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:
For more information on JIRA, see:

View raw message