[
https://issues.jboss.org/browse/JBTM-2725?page=com.atlassian.jira.plugin....
]
Mark Little commented on JBTM-2725:
-----------------------------------
Did anyone bother checking the history of the code to determine why we threw the rollback
exception? It wasn't always the case and changing it without understanding the reasons
is risky.
Race condition in ControlWrapper
--------------------------------
Key: JBTM-2725
URL:
https://issues.jboss.org/browse/JBTM-2725
Project: JBoss Transaction Manager
Issue Type: Bug
Components: JTS
Affects Versions: 5.3.3.Final
Reporter: Tomasz Adamski
Assignee: Tomasz Adamski
Fix For: 5.3.5.Final
I have encountered another problem during timeout induced rollback scenario. When the
thread rolls back the transaction immediately after the reaper they both end in
ControlWrapper#rollback method. This should be synchronized: if it is not both threads may
call TransactionImple#rollback method which is not expected and leads to
IllegalStateException error. In synchronized scenario second thread in
ControlWrapper#rollback method see that the TransactionImple has already been
disassociated with the thread and throws TRANSACTION_ROLLEDBACK exception which is
expected.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)