DefaultISMLocking of VersionManager will not be release if some 
RuntimeException occurs during rollback
-------------------------------------------------------------------------------------------------------

                 Key: JCR-3283
                 URL: https://issues.apache.org/jira/browse/JCR-3283
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: jackrabbit-core
    Affects Versions: 2.2
         Environment: WinXP + JBoss + Oracle
            Reporter: licheng
             Fix For: 2.2


In TransactionContext.rollback(), every InternalXAResource is supposed to 
rollback its pervious action. 
The problem is during the iterator on the InternalXAResources, 
TransactionContext only catches TransactionException. In most case, it should 
be ok. But if some RuntimeException occurs in one of the InternalXAResource, 
the latter InternalXAResource will have no chance to rollback its previous 
action.
In my case, following RuntimeException happened during the rollback process of 
XAItemStateManager, the result is VersionMgr.getXAResourceEnd() will not have 
chance to do roll back, make the DefaultISMLocking is not released from current 
thread. 
All the latter thread that want to acquire the lock of VersionManager is 
blocked for ever.
12:30:13,639 ERROR [STDERR] java.util.ConcurrentModificationException
12:30:13,639 ERROR [STDERR]     at 
java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:761)
12:30:13,639 ERROR [STDERR]     at 
java.util.LinkedList$ListItr.next(LinkedList.java:696)
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.persistence.util.NodePropBundle.createNodeState(NodePropBundle.java:159
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.load(AbstractBundle
r.java:404)
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState(SharedItemStateManager.java:
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.state.SharedItemStateManager.access$12(SharedItemStateManager.java:1814
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.cancel(SharedItemStateManager.java:
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.state.XAItemStateManager.rollback(XAItemStateManager.java:197)
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.TransactionContext.rollback(TransactionContext.java:243)
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:167)
12:30:13,639 ERROR [STDERR]     at 
org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:311)



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to