[jboss-cvs] JBoss Messaging SVN: r6595 - trunk/tests/src/org/jboss/messaging/tests/integration/xa.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 28 07:45:20 EDT 2009
Author: ataylor
Date: 2009-04-28 07:45:20 -0400 (Tue, 28 Apr 2009)
New Revision: 6595
Modified:
trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
Log:
removed Thread.sleeps and replaced with latches
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java 2009-04-28 09:45:52 UTC (rev 6594)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/xa/XaTimeoutTest.java 2009-04-28 11:45:20 UTC (rev 6595)
@@ -21,13 +21,6 @@
*/
package org.jboss.messaging.tests.integration.xa;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.transaction.xa.XAException;
-import javax.transaction.xa.XAResource;
-import javax.transaction.xa.Xid;
-
import org.jboss.messaging.core.client.ClientConsumer;
import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.client.ClientProducer;
@@ -40,11 +33,21 @@
import org.jboss.messaging.core.server.Messaging;
import org.jboss.messaging.core.server.MessagingServer;
import org.jboss.messaging.core.settings.impl.AddressSettings;
+import org.jboss.messaging.core.transaction.Transaction;
+import org.jboss.messaging.core.transaction.TransactionOperation;
import org.jboss.messaging.core.transaction.impl.XidImpl;
import org.jboss.messaging.tests.util.UnitTestCase;
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 java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
/**
* @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
*/
@@ -133,7 +136,9 @@
clientProducer.send(m3);
clientProducer.send(m4);
clientSession.end(xid, XAResource.TMSUCCESS);
- Thread.sleep(1500);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
try
{
clientSession.commit(xid, true);
@@ -182,7 +187,9 @@
assertNotNull(m);
assertEquals(m.getBody().readString(), "m4");
clientSession.end(xid, XAResource.TMSUCCESS);
- Thread.sleep(2600);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
try
{
clientSession.commit(xid, true);
@@ -258,7 +265,9 @@
assertNotNull(m);
assertEquals(m.getBody().readString(), "m4");
clientSession.end(xid, XAResource.TMSUCCESS);
- Thread.sleep(2600);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
try
{
clientSession.commit(xid, true);
@@ -337,7 +346,9 @@
assertEquals(m.getBody().readString(), "m4");
clientSession.end(xid, XAResource.TMSUCCESS);
clientSession.prepare(xid);
- Thread.sleep(2600);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertFalse(latch.await(2600, TimeUnit.MILLISECONDS));
clientSession.commit(xid, true);
clientSession.setTransactionTimeout(0);
@@ -381,7 +392,9 @@
clientProducer.send(m4);
clientSession.end(xid, XAResource.TMSUCCESS);
clientSession.setTransactionTimeout(1);
- Thread.sleep(1500);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
try
{
@@ -412,7 +425,9 @@
clientProducer.send(m4);
clientSession.end(xid, XAResource.TMSUCCESS);
clientSession.setTransactionTimeout(10000);
- Thread.sleep(2600);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xid).addOperation(new RollbackCompleteOperation(latch));
+ assertFalse(latch.await(2600, TimeUnit.MILLISECONDS));
clientSession.prepare(xid);
clientSession.commit(xid, true);
ClientSession clientSession2 = sessionFactory.createSession(false, true, true);
@@ -474,7 +489,9 @@
{
clientSessions[i].end(xids[i], XAResource.TMSUCCESS);
}
- Thread.sleep(2500);
+ CountDownLatch latch = new CountDownLatch(1);
+ messagingService.getResourceManager().getTransaction(xids[clientSessions.length - 1]).addOperation(new RollbackCompleteOperation(latch));
+ assertTrue(latch.await(5, TimeUnit.SECONDS));
for (int i = 0; i < clientSessions.length; i++)
{
try
@@ -495,4 +512,38 @@
assertNull(m);
}
+ class RollbackCompleteOperation implements TransactionOperation
+ {
+ final CountDownLatch latch;
+
+ public RollbackCompleteOperation(CountDownLatch latch)
+ {
+ this.latch = latch;
+ }
+
+ public void beforePrepare(Transaction tx) throws Exception
+ {
+ }
+
+ public void beforeCommit(Transaction tx) throws Exception
+ {
+ }
+
+ public void beforeRollback(Transaction tx) throws Exception
+ {
+ }
+
+ public void afterPrepare(Transaction tx) throws Exception
+ {
+ }
+
+ public void afterCommit(Transaction tx) throws Exception
+ {
+ }
+
+ public void afterRollback(Transaction tx) throws Exception
+ {
+ latch.countDown();
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list