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)

Reply via email to