jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ross Black (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-412) JCA Concurrent Modification Exception when JCAManagedConnection.cleanup() called
Date Wed, 26 Apr 2006 02:41:03 GMT
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
    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


Mime
View raw message