[jboss-cvs] JBoss Messaging SVN: r5959 - in trunk: tests/src/org/jboss/messaging/tests/integration/xa and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 2 09:06:07 EST 2009


Author: ataylor
Date: 2009-03-02 09:06:07 -0500 (Mon, 02 Mar 2009)
New Revision: 5959

Modified:
   trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
   trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java
Log:
Stop and start session while rolling back xa tx

Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2009-03-02 13:45:31 UTC (rev 5958)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java	2009-03-02 14:06:07 UTC (rev 5959)
@@ -1087,6 +1087,13 @@
       {
          flushAcks();
 
+         boolean wasStarted = started;
+
+         if (wasStarted)
+         {
+            stop();
+         }
+
          // We need to make sure we don't get any inflight messages
          for (ClientConsumerInternal consumer : consumers.values())
          {
@@ -1095,8 +1102,13 @@
 
          SessionXARollbackMessage packet = new SessionXARollbackMessage(xid);
 
-         SessionXAResponseMessage response = (SessionXAResponseMessage)channel.sendBlocking(packet);
+         SessionXAResponseMessage response = (SessionXAResponseMessage) channel.sendBlocking(packet);
 
+         if (wasStarted)
+         {
+            start();
+         }
+
          if (response.isError())
          {
             throw new XAException(response.getResponseCode());

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java	2009-03-02 13:45:31 UTC (rev 5958)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/BasicXaTest.java	2009-03-02 14:06:07 UTC (rev 5959)
@@ -38,9 +38,9 @@
 import org.jboss.messaging.utils.SimpleString;
 import org.jboss.messaging.utils.UUIDGenerator;
 
+import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
-import javax.transaction.xa.XAException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
@@ -207,18 +207,19 @@
 
    }
 
-   /*public void testReceiveRollback() throws Exception
+   public void testReceiveRollback() throws Exception
    {
+      int numSessions = 100;
       ClientSession clientSession2 = sessionFactory.createSession(false, true, true);
       ClientProducer clientProducer = clientSession2.createProducer(atestq);
-     for(int i = 0; i < 100; i++)
-     {
-        clientProducer.send(createTextMessage(clientSession2, "m" + i));
-     }
-      ClientSession[] clientSessions = new ClientSession[10];
-      ClientConsumer[] clientConsumers = new ClientConsumer[10];
-      TxMessageHandler[] handlers = new TxMessageHandler[10];
-      CountDownLatch latch = new CountDownLatch(10*10);
+      for (int i = 0; i < 10 * numSessions; i++)
+      {
+         clientProducer.send(createTextMessage(clientSession2, "m" + i));
+      }
+      ClientSession[] clientSessions = new ClientSession[numSessions];
+      ClientConsumer[] clientConsumers = new ClientConsumer[numSessions];
+      TxMessageHandler[] handlers = new TxMessageHandler[numSessions];
+      CountDownLatch latch = new CountDownLatch(numSessions * AddressSettings.DEFAULT_MAX_DELIVERY_ATTEMPTS);
       for (int i = 0; i < clientSessions.length; i++)
       {
          clientSessions[i] = sessionFactory.createSession(true, false, false);
@@ -232,7 +233,7 @@
       }
 
 
-     latch.await(10, TimeUnit.SECONDS);
+      assertTrue(latch.await(10, TimeUnit.SECONDS));
       for (TxMessageHandler messageHandler : handlers)
       {
          assertFalse(messageHandler.failedToAck);
@@ -256,7 +257,7 @@
       public void onMessage(final ClientMessage message)
       {
          JBossMessage jbm = JBossMessage.createMessage(message, session);
-         Xid xid = new XidImpl( UUIDGenerator.getInstance().generateStringUUID().getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());
+         Xid xid = new XidImpl(UUIDGenerator.getInstance().generateStringUUID().getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes());
          try
          {
             session.start(xid, XAResource.TMNOFLAGS);
@@ -308,5 +309,5 @@
          latch.countDown();
 
       }
-   }*/
+   }
 }




More information about the jboss-cvs-commits mailing list