[jbossts-issues] [JBoss JIRA] (JBTM-1431) LastResourceRecord.shouldAdd allows insertion regardless of order and type info

Tom Jenkinson (JIRA) jira-events at lists.jboss.org
Wed Aug 28 06:12:26 EDT 2013


     [ https://issues.jboss.org/browse/JBTM-1431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tom Jenkinson resolved JBTM-1431.
---------------------------------

    Resolution: Done

    
> LastResourceRecord.shouldAdd allows insertion regardless of order and type info
> -------------------------------------------------------------------------------
>
>                 Key: JBTM-1431
>                 URL: https://issues.jboss.org/browse/JBTM-1431
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Transaction Core
>    Affects Versions: 4.17.3
>            Reporter: Mark Little
>            Assignee: Mark Little
>             Fix For: 4.17.9, 5.0.0.M2
>
>
> So looking at the code, LastResource is meant to be ordered last in the intentions list (check topLevelPrepare to see this). However, a quick look at the code in LastResourceRecord shows that there is a bug:
> public boolean shouldAdd (AbstractRecord a)
>     {
>         if (a.typeIs() == typeIs())
>         {
>             if (ALLOW_MULTIPLE_LAST_RESOURCES) {
>                 if (!_disableMLRWarning
>                         || (_disableMLRWarning && !_issuedWarning)) {
>                     tsLogger.i18NLogger.warn_lastResource_multipleWarning(a.toString());
>                     _issuedWarning = true;
>                 }
>                 return true;
>             }
>             else {
>                 tsLogger.i18NLogger.warn_lastResource_disallow(this.toString(), a.toString());
>                 return false;
>             }
>         }
>         else
>         {
>             return true;  <------- Here is the bug!
>         }
>     }
> Basically if the record to be added is not a LastResourceRecord then it gets added immediately, ignoring any further checks on type, order etc. This is wrong.
> And looking back at the code from 6 years ago we see that this was much simpler:
> public boolean shouldAdd (AbstractRecord a)
> 	{
>             return (a.typeIs() == typeIs()) ;
> 	}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbossts-issues mailing list