[jbossts-issues] [JBoss JIRA] (JBTM-1431) LastResourceRecord.shouldAdd allows insertion regardless of order and type info
Mark Little (JIRA)
jira-events at lists.jboss.org
Wed Jan 16 07:01:22 EST 2013
Mark Little created JBTM-1431:
---------------------------------
Summary: 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
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