Jörn Gersdorf created GERONIMO-6542:
---------------------------------------
Summary: Logging of XIDs/TransactionIds is wrong
Key: GERONIMO-6542
URL: https://issues.apache.org/jira/browse/GERONIMO-6542
Project: Geronimo
Issue Type: Bug
Security Level: public (Regular issues)
Components: transaction manager
Environment: JBoss Fuse 6.1-610379, Apache Geronimo TransactionManager
3.3.1
Reporter: Jörn Gersdorf
Priority: Minor
Transaction IDs are logged in a wrong format by XidImpl.toString().
We are currently investigating issues in a distributed transaction setup
involving WebsphereMQ and try to correlate hanging transactions from MQ with
transaction behaviour by Aries/Geronimo. Therefore we set loglevel
{{org.apache.geronimo.transaction.manager}} to {{TRACE}} which lets
{{WrapperNamedXAResource}} nicely log all XA activities.
However, transaction XIDs are logged in a wrong format. E. g. the transaction
Xid
{{363720AB4C0100006F72672E6170616368652E61726965732E7472616E73616374696F6E00000000000000000000000000000000000000000000000000000000}}
will be logged as
{{363720ffffffab4c1006f72672e6170616368652e61726965732e7472616e73616374696f6e0000000000000000000000000000}}.
Reason lies in {{XidImpl.toString()}} and is twofold:
1. {{Integer.toHexString(bgid[i])}} will append a single byte as just one
character for byte values {{0 <= bgid[i] <= 15}} (e. g. "1" instead of "01").
2. {{bgid[i]}} is a signed byte value. Negative values will be logged wrongly
(e. g. "ab" will be logged as "ffffffab").
Patch solving these issues is attached.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)