[jbossts-issues] [JBoss JIRA] Created: (JBTM-463) WS-AT can leak participant-side log entries when committing with only one participant

Andrew Dinn (JIRA) jira-events at lists.jboss.org
Wed Jan 14 09:19:04 EST 2009

WS-AT can leak participant-side log entries when committing with only one participant

                 Key: JBTM-463
                 URL: https://jira.jboss.org/jira/browse/JBTM-463
             Project: JBoss Transaction Manager
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: 4.5
            Reporter: Andrew Dinn
            Assignee: Andrew Dinn

The WSAT coordinator implements its client commit operation by calling BasicAction.End(). End() calls BasicAction.doOnePhase() to decide whether to optimise the commit. If there is only one participant then doOnePhase() will return true in which case End() calls the participant record's method topLevelOnePhaseCommit() to do the commit and omits to write a log record for the transaction.

The WSAT participant record can only perform this one phase commit by dispatching a prepare message followed by a commit message (this is required by the AT spec). The participant has to log a participant record at prepare. If the coordinator JVM crashes between prepare and commit then the participant web service will never delete the log record because it will never receive a commit message when the coordinator restarts.

n.b. this can easily be fixed by overriding BasicAction.doOnePhase in the WSAT coordinator so that it returns false.  however, this method is final so modifying it requires a change to the signature of BasicAction.

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