[hornetq-commits] JBoss hornetq SVN: r7985 - trunk/tests/src/org/hornetq/tests/integration/journal.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Sep 23 17:01:19 EDT 2009


Author: clebert.suconic at jboss.com
Date: 2009-09-23 17:01:19 -0400 (Wed, 23 Sep 2009)
New Revision: 7985

Modified:
   trunk/tests/src/org/hornetq/tests/integration/journal/MultiThreadCompactorTest.java
Log:
Adding tests to check empty transactions...
Compacting and cleanup should take care of that also. I wanted to make sure this was taken care of on the tests

Modified: trunk/tests/src/org/hornetq/tests/integration/journal/MultiThreadCompactorTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/MultiThreadCompactorTest.java	2009-09-23 19:17:46 UTC (rev 7984)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/MultiThreadCompactorTest.java	2009-09-23 21:01:19 UTC (rev 7985)
@@ -17,6 +17,10 @@
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
+
 import org.hornetq.core.buffers.ChannelBuffers;
 import org.hornetq.core.client.ClientConsumer;
 import org.hornetq.core.client.ClientMessage;
@@ -61,7 +65,7 @@
    {
       return 3;
    }
-   
+
    protected void setUp() throws Exception
    {
       super.setUp();
@@ -80,6 +84,7 @@
       {
          System.out.println("######################################");
          System.out.println("test # " + i);
+
          internalTestProduceAndConsume();
          stopServer();
 
@@ -113,14 +118,50 @@
          journal = null;
 
          setupServer(JournalType.ASYNCIO);
+
       }
    }
 
+   /**
+    * @param xid
+    * @throws HornetQException
+    * @throws XAException
+    */
+   private void addEmptyTransaction(Xid xid) throws HornetQException, XAException
+   {
+      ClientSessionFactory sf = createInVMFactory();
+      ClientSession session = sf.createSession(true, false, false);
+      session.start(xid, XAResource.TMNOFLAGS);
+      session.end(xid, XAResource.TMSUCCESS);
+      session.prepare(xid);
+      session.close();
+      sf.close();
+   }
+
+   private void checkEmptyXID(Xid xid) throws HornetQException, XAException
+   {
+      ClientSessionFactory sf = createInVMFactory();
+      ClientSession session = sf.createSession(true, false, false);
+
+      Xid[] xids = session.recover(XAResource.TMSTARTRSCAN);
+      assertEquals(1, xids.length);
+      assertEquals(xid, xids[0]);
+
+      session.rollback(xid);
+      
+      session.close();
+      sf.close();
+   }
+
    public void internalTestProduceAndConsume() throws Throwable
    {
 
       addBogusData(100, "LAZY-QUEUE");
 
+      Xid xid = null;
+      xid = newXID();
+      addEmptyTransaction(xid);
+
       System.out.println(getTemporaryDir());
       boolean transactionalOnConsume = true;
       boolean transactionalOnProduce = true;
@@ -194,6 +235,8 @@
       setupServer(JournalType.ASYNCIO);
       drainQueue(0, QUEUE);
       drainQueue(0, new SimpleString("LAZY-QUEUE"));
+      
+      checkEmptyXID(xid);
 
    }
 



More information about the hornetq-commits mailing list