]
Michael Musgrove updated JBTM-3222:
-----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
Local LRA lookup should just use the Uid part of the LRA
--------------------------------------------------------
Key: JBTM-3222
URL:
https://issues.jboss.org/browse/JBTM-3222
Project: JBoss Transaction Manager
Issue Type: Bug
Components: LRA
Affects Versions: 5.10.0.Final
Reporter: Michael Musgrove
Assignee: Michael Musgrove
Priority: Major
Fix For: 5.next
The LRA implementation identifies LRA's by their full JAX-RS resource path (aka URI).
[Remark we use the full resource path in order to determine which host owns the LRA]. But
when these URI's are calculated sometimes the base URI ends up as localhost and other
times as 127.0.0.1 (or :1). The code in the coordinator that wants to know if it owns an
LRA should avoid checking the whole path and instead just rely on the Uid part of the
resource path (com.arjuna.ats.arjuna.common.Uid). This is safe since the URI is globally
unique. Note that this technique only works for LRA ids created by narayana which is fine
because the code that does the lookup is only interested in whether the local coordinator
created the LRA (tangentially related but it is also noteworthy that we are not targeting
interoperability in LRA version 1.0
The particular code that does the lookup is in LRAService#getTransaction().