[jbossts-issues] [JBoss JIRA] Commented: (JBTM-506) jtax subordinate TransactionImple confuses TwoPhaseOutcome and ActionStatus

Mark Little (JIRA) jira-events at lists.jboss.org
Fri Mar 6 04:23:22 EST 2009

    [ https://jira.jboss.org/jira/browse/JBTM-506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12455837#action_12455837 ] 

Mark Little commented on JBTM-506:

We cannot throw RollbackException if a heuristic rollback occurs otherwise heuristic resolution will not kick in either during normal execution or recovery. HeuristicRollback is the right exception to throw in the case of getting a HEURISTIC_ROLLBACK status.

I'm not sure why we don't do the same for HeuristicCommit on doCommit, i.e., currently at the moment we return 'ok' on doCommit if we get a HEURISTIC_COMMIT status, same as if we get a FINISH_OK. But really we should throw HeuristicCommit.

> jtax subordinate TransactionImple confuses TwoPhaseOutcome and ActionStatus
> ---------------------------------------------------------------------------
>                 Key: JBTM-506
>                 URL: https://jira.jboss.org/jira/browse/JBTM-506
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Application Server Integration, JTS Implementation
>    Affects Versions: 4.5
>            Reporter: Jonathan Halliday
>            Assignee: Mark Little
>             Fix For: 4.6
> In some methods of com.arjuna.ats.internal.jta.transaction.arjunacore.subordinate.TransactionImple, code of the form
>  int res = subAct.doFoo();
> switch(res)
> case ActionStatus.Bar:
> is found. This is incorrect, as the methods on SubordinateAtomicAction return TwoPhaseOutome not ActionStatus.  In the JTA the SubordinateAtomicAction returns ActionStatus which is probably where the confusion arises, so arguably it's actually the JTAX  SubordinateAtomicTransaction which is at fault, not the TransactionImple.
> Since the case statements will need reworking anyhow, it's probably worth looking that the way 'try to commit but actually have to rollback' is handled. In the JTA this throws RollbackException as the rollback is clean. In the JTAX it results in a HeuristicRollback due to the way the states and exceptions are mapped. This is perhaps less user friendly than it could be.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbossts-issues mailing list