[jbossts-issues] [JBoss JIRA] (JBTM-2614) JCA TransactionImporter should be thread safe

Michael Musgrove (JIRA) issues at jboss.org
Tue Jan 26 07:25:00 EST 2016

Michael Musgrove created JBTM-2614:

             Summary: JCA TransactionImporter should be thread safe
                 Key: JBTM-2614
                 URL: https://issues.jboss.org/browse/JBTM-2614
             Project: JBoss Transaction Manager
          Issue Type: Bug
          Components: JCA
    Affects Versions: 5.2.12.Final
            Reporter: Michael Musgrove
            Assignee: Michael Musgrove
             Fix For: 5.next

I have a unit test that shows there's a race condition (first observed by [~dmlloyd]) in com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporterImple#importTransaction(javax.transaction.xa.Xid, int).

If two threads call this method at the same time, two separate transaction objects may be created.  Here's the sequence of events:

T1: call importTransaction for XID1
T2: call importTransaction for XID1
T1: getImportedTransaction returns null
T2: getImportedTransaction returns null
T1: create new transaction, add to map
T2: create new transaction, add to map (overwriting T1's)

There is nothing in the documentation to indicate that this is not a valid situation or that access to the TransactionImporter has to be single-threaded in any way.

This message was sent by Atlassian JIRA

More information about the jbossts-issues mailing list