[jboss-jira] [JBoss JIRA] Resolved: (JBTM-188) ConcurrentModificationException during commit time Synchronization processing

Jonathan Halliday (JIRA) jira-events at jboss.com
Wed Jan 17 11:27:52 EST 2007


     [ 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

        



More information about the jboss-jira mailing list