jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] Updated: (JCR-412) JCA Concurrent Modification Exception when JCAManagedConnection.cleanup() called
Date Tue, 04 Jul 2006 08:52:31 GMT
     [ http://issues.apache.org/jira/browse/JCR-412?page=all ]

Jukka Zitting updated JCR-412:
------------------------------

    Fix Version: 1.1
        Version: 1.0.1

> 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, 1.0.1
>  Environment: JDK1.4.2
> SunOne AppServer 7
>     Reporter: Ross Black
>     Assignee: Edgar Poce
>     Priority: Minor
>      Fix For: 1.1

>
> 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