Is there any good reason for why the XIDs in JBOSS are so simple? The current implementation takes the HOSTNAME + an incrementing value that always starts at 1.
The problem with this approach is that on restarts of the server the XIDs repeat, which can cause trouble for resources that expect XIDs to be globally unique.
I had exactly this problem while integrating MQSeries until I replaced your default implementation of XID with one that used a better approach.
There are various approaches employed by other vendors (some more complex than others - Tyrex seems to take the cake) but I settled on a simple one that was used by an older version of BEA WebLogic. They would just combine the System.currentTimeMillis() (taken once at server startup) with an incrementing number. Similar to yours but not as likely of causing collisions.
If you are doing another patch release of the 2.4.4 branch it would be really useful if you could include an update to XID.