[
https://issues.jboss.org/browse/JBTM-823?page=com.atlassian.jira.plugin.s...
]
Jonathan Halliday commented on JBTM-823:
----------------------------------------
Fixed list comparison.
Note: The older list is actually the sum of all earlier scans, not just the immediately
preceding one. This is intentional to allow for transient errors in the RM, but the array
copy is old performance oriented code that could be replaced such that the list adds only
missing items instead of having duplicates. Replacing the list with a Set is not desirable
unless we use a custom comparator - the hashcode/equals on 3rd party driver's Xid
impls does not always behave properly so we only trust our own comparison code.
Xid recovery scans assume same list ordering
--------------------------------------------
Key: JBTM-823
URL:
https://issues.jboss.org/browse/JBTM-823
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Recovery
Affects Versions: 4.6.1.CP08, 4.14.0
Reporter: Jonathan Halliday
Assignee: Jonathan Halliday
Fix For: 4.15.0, 4.6.1.CP09
For RM driven recovery, two consecutive recovery scans are performed with a delay
between. Only Xids appearing in both are eligible for recovery. This prevents momentarily
prepared, normally executing branches from being incorrectly aborted.
RecoveryXids.toRecover incorrectly compares the content of the two lists, leading to some
Xids not being recovered in a timely manner if the list content or order partially changes
between scans.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira