[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