[
http://jira.jboss.com/jira/browse/JBTM-188?page=all ]
Jonathan Halliday resolved JBTM-188.
------------------------------------
Resolution: Done
Modified the TwoPhaseCoordinator to work on a copy of the Synchronization set during
beforeCompletion processing, rather than iterating the original colleciton. This is
somewhat tricky as the JTA 1.1. spec forces partial ordering of Synchronizations vs.
Interposed Synchronizations. Care must be taken that any Synchronizations added during the
beforeCompletion respect this ordering, whilst at the same time avoiding coupling the
arjunacore code to the JTA. see code comments in TwoPhaseCoordinator.java, svn rev 8885,
2007-01-17.
ConcurrentModificationException during commit time Synchronization
processing
-----------------------------------------------------------------------------
Key: JBTM-188
URL:
http://jira.jboss.com/jira/browse/JBTM-188
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: JTA Implementation
Affects Versions: 4.2.3
Environment: java 1.5, linux, TS 4.2.3.CR2 jta
Reporter: Jonathan Halliday
Assigned To: Jonathan Halliday
Fix For: 4.2.3
When a Synchronization's beforeCompletion method registers another Synchrinization to
the transaction, Bad Things happen.
12:38:20,062 ERROR [STDERR] java.util.ConcurrentModificationException
12:38:20,092 ERROR [STDERR] at
java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1031)
12:38:20,092 ERROR [STDERR] at java.util.TreeMap$KeyIterator.next(TreeMap.java:1058)
12:38:20,092 ERROR [STDERR] at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoP
haseCoordinator.java:211)
12:38:20,092 ERROR [STDERR] at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinat
or.java:88)
12:38:20,092 ERROR [STDERR] at
com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
12:38:20,092 ERROR [STDERR] at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitA
ndDisassociate(TransactionImple.java:1204)
12:38:20,112 ERROR [STDERR] at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(B
aseTransaction.java:134)
12:38:20,112 ERROR [STDERR] at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransacti
onManagerDelegate.java:87)
12:38:20,112 ERROR [STDERR] at
org.jboss.test.cmp2.ageout.test.JDBC2PmAgeOutUnitTestCase.commitTx(JDBC2PmA
geOutUnitTestCase.java:236)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira