jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "licheng (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JCR-3283) DefaultISMLocking of VersionManager will not be release if some RuntimeException occurs during rollback
Date Sun, 01 Apr 2012 07:19:10 GMT
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

        

Mime
View raw message