[jboss-svn-commits] JBL Code SVN: r37567 - in labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server: impl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Oct 16 17:52:29 EDT 2011
Author: tomjenkinson
Date: 2011-10-16 17:52:29 -0400 (Sun, 16 Oct 2011)
New Revision: 37567
Modified:
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java
labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java
Log:
JBTM-916 filter out none-related transactions for this proxy resource
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java 2011-10-16 21:42:10 UTC (rev 37566)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/RemoteServer.java 2011-10-16 21:52:29 UTC (rev 37567)
@@ -17,7 +17,7 @@
public void propagateRollback(Xid xid) throws IllegalStateException, HeuristicMixedException, HeuristicCommitException, HeuristicRollbackException,
SystemException, XAException, DummyRemoteException;
- public Xid[] propagateRecover(Integer serverNodeNameToRecoverFor, int flag) throws XAException, DummyRemoteException;
+ public Xid[] propagateRecover(int formatId, byte[] gtrid, Integer serverNodeNameToRecoverFor, int flag) throws XAException, DummyRemoteException;
public void propagateForget(Xid xid) throws XAException, DummyRemoteException;
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java 2011-10-16 21:42:10 UTC (rev 37566)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxyXAResource.java 2011-10-16 21:52:29 UTC (rev 37567)
@@ -185,14 +185,16 @@
+ remoteServerName);
}
- ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
- try {
- Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
- recovered = lookupProvider.lookup(remoteServerName).propagateRecover(localServerName, flag);
- } catch (DummyRemoteException ce) {
- throw new XAException(XAException.XA_RETRY);
- } finally {
- Thread.currentThread().setContextClassLoader(contextClassLoader);
+ if (this.xid != null) {
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
+ recovered = lookupProvider.lookup(remoteServerName).propagateRecover(xid.getFormatId(), xid.getGlobalTransactionId(), localServerName, flag);
+ } catch (DummyRemoteException ce) {
+ throw new XAException(XAException.XA_RETRY);
+ } finally {
+ Thread.currentThread().setContextClassLoader(contextClassLoader);
+ }
}
for (int i = 0; i < recovered.length; i++) {
Modified: labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java 2011-10-16 21:42:10 UTC (rev 37566)
+++ labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ServerImpl.java 2011-10-16 21:52:29 UTC (rev 37567)
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -253,17 +254,17 @@
}
@Override
- public Xid[] propagateRecover(Integer serverNodeNameToRecoverFor, int flag) throws XAException, DummyRemoteException {
+ public Xid[] propagateRecover(int formatId, byte[] gtrid, Integer serverNodeNameToRecoverFor, int flag) throws XAException, DummyRemoteException {
if (offline) {
throw new DummyRemoteException("Connection refused to: " + nodeName);
}
- // Assumes that this thread is used by the recovery thread
- // ProxyXAResource.RECOVERY_SCAN_STARTED.set(recoveryScanStarted);
List<Xid> toReturn = new ArrayList<Xid>();
Xid[] recovered = SubordinationManager.getXATerminator().recover(flag);
if (recovered != null) {
for (int i = 0; i < recovered.length; i++) {
- if (XATxConverter.getParentNodeName(((XidImple) recovered[i]).getXID()) == serverNodeNameToRecoverFor) {
+ // Filter out the transactions that are not owned by this parent
+ if (recovered[i].getFormatId() == formatId && Arrays.equals(gtrid, recovered[i].getGlobalTransactionId())
+ && XATxConverter.getParentNodeName(((XidImple) recovered[i]).getXID()) == serverNodeNameToRecoverFor) {
toReturn.add(recovered[i]);
}
}
More information about the jboss-svn-commits
mailing list