Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.2
-
None
-
WinXP + JBoss + Oracle
Description
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)