You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2009/02/04 20:48:11 UTC
svn commit: r740839 -
/geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java
Author: gawor
Date: Wed Feb 4 19:48:10 2009
New Revision: 740839
URL: http://svn.apache.org/viewvc?rev=740839&view=rev
Log:
add some random bytes to baseId. Patch from Gary Tully (GERONIMO-4393)
Modified:
geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java
Modified: geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java
URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java?rev=740839&r1=740838&r2=740839&view=diff
==============================================================================
--- geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java (original)
+++ geronimo/components/txmanager/trunk/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/XidFactoryImpl.java Wed Feb 4 19:48:10 2009
@@ -17,6 +17,7 @@
package org.apache.geronimo.transaction.manager;
+import java.util.Random;
import javax.transaction.xa.Xid;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -26,6 +27,7 @@
* The Xid is constructed of three parts:
* <ol><li>8 byte count (LSB first)</li>
* <li>4 byte system id</li>
+ * <li>2 byte entropy</li>
* <li>4 or 16 byte IP address of host</li>
* <ol>
* @version $Rev$ $Date$
@@ -51,7 +53,13 @@
baseId[9] = (byte) (uid >>> 8);
baseId[10] = (byte) (uid >>> 16);
baseId[11] = (byte) (uid >>> 24);
- System.arraycopy(hostid, 0, baseId, 12, hostid.length);
+
+ byte[] entropy = new byte[2];
+ new Random().nextBytes(entropy);
+ baseId[12] = entropy[0];
+ baseId[13] = entropy[1];
+
+ System.arraycopy(hostid, 0, baseId, 14, hostid.length);
}
public Xid createXid() {