On Fri, 1 Dec 2006, Heikki Linnakangas wrote:
> Kris Jurka wrote:
>> Doesn't this allow:
>>
>> xaRes.start(xid, XAResource.TMNOFLAGS);
>> xaRes.end(xid, XAResource.TMFAIL);
>> xaRes.start(xid, XAResource.TMJOIN);
>> xaRes.end(xid, XAResource.TMSUCCESS);
>> xaRes.commit(xid, true);
>>
>> Is that actually a problem or do we assume the TM is smart enough not to do
>> this.
>
> Hmm, true, it does allow that.
>
> The TM really shouldn't be doing that. It's very confused if it does.
> However, given the sorry state of many TMs out there, it'd be nice if we did
> check for that.
>
> I'd say let's not bother checking that for now. In the future, we should roll
> back the transaction on end(TMFAIL) immediately, and add checking for that
> case as well. The way it works now is perfectly correct and legal, we're just
> not taking advantage of the hint the TM is giving us.
>
OK. Applied.
Kris Jurka