[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