[jboss-cvs] JBossAS SVN: r106016 - in branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca: interfaces and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jun 13 19:18:42 EDT 2010


Author: clebert.suconic at jboss.com
Date: 2010-06-13 19:18:42 -0400 (Sun, 13 Jun 2010)
New Revision: 106016

Modified:
   branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/ejb/TransactionActiveBean.java
   branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/interfaces/TransactionActiveRemote.java
   branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/test/TransactionActiveUnitTestCase.java
Log:
Adding new test to validate Dual session behaviour on JMS XA Sessions

Modified: branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/ejb/TransactionActiveBean.java
===================================================================
--- branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/ejb/TransactionActiveBean.java	2010-06-13 10:41:21 UTC (rev 106015)
+++ branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/ejb/TransactionActiveBean.java	2010-06-13 23:18:42 UTC (rev 106016)
@@ -264,7 +264,7 @@
          throw new RuntimeException("Unexpected Error: ", e);
       }
    }
-
+ 
    public void changeQueue()
    {
       try
@@ -283,7 +283,15 @@
                c.start();
                Session s = c.createSession(true, Session.SESSION_TRANSACTED);
                MessageConsumer mc = s.createConsumer(queue);
-               mc.receiveNoWait();
+               TextMessage txt = (TextMessage)mc.receive(5000);
+               if (!txt.getText().equals("101"))
+               {
+                  throw new IllegalStateException("Unexpected message content. It should be 101");
+               }
+               if (mc.receiveNoWait() != null)
+               {
+                  throw new IllegalStateException("Didn't expect two messages");
+               }
                mc.close();
                try
                {
@@ -393,7 +401,36 @@
          throw new RuntimeException("Unexpected Error: ", e);
       }
    }
+   
+   
+   public void emptyRollback()
+   {
+       try
+       {
+           InitialContext ctx = new InitialContext();
+           ConnectionFactory cf = (ConnectionFactory) ctx.lookup("java:JmsXA");
+           javax.jms.Connection c = cf.createConnection();
+    
+           Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);
+           Queue queue = (Queue) ctx.lookup("/queue/A");
 
+           UserTransaction ct = sessionCtx.getUserTransaction();
+           ct.begin();
+           ct.rollback();
+           
+           MessageProducer prod = s.createProducer(queue);
+           
+           prod.send(s.createMessage());
+           
+           c.close();
+           
+       }
+       catch (Exception e)
+       {
+           throw new RuntimeException(e.getMessage(), e);
+       }
+   }
+
    public void ejbCreate() 
    {
    }

Modified: branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/interfaces/TransactionActiveRemote.java
===================================================================
--- branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/interfaces/TransactionActiveRemote.java	2010-06-13 10:41:21 UTC (rev 106015)
+++ branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/interfaces/TransactionActiveRemote.java	2010-06-13 23:18:42 UTC (rev 106016)
@@ -39,4 +39,5 @@
    void setupQueue() throws RemoteException;
    void changeQueue() throws RemoteException;
    void checkQueue() throws RemoteException;
+   void emptyRollback() throws RemoteException;
 }

Modified: branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/test/TransactionActiveUnitTestCase.java
===================================================================
--- branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/test/TransactionActiveUnitTestCase.java	2010-06-13 10:41:21 UTC (rev 106015)
+++ branches/JBPAPP_5_1/testsuite/src/main/org/jboss/test/jca/test/TransactionActiveUnitTestCase.java	2010-06-13 23:18:42 UTC (rev 106016)
@@ -21,6 +21,13 @@
  */
 package org.jboss.test.jca.test;
 
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.MessageConsumer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.naming.InitialContext;
+
 import junit.extensions.TestSetup;
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -82,4 +89,23 @@
       remote.changeQueue();
       remote.checkQueue();
    }
+   
+   public void testEmptyRollback() throws Exception
+   {
+       TransactionActiveHome home = (TransactionActiveHome) getInitialContext().lookup("test/ejbs/TxActiveBean");
+       TransactionActiveRemote remote = home.create();
+       remote.emptyRollback();
+       
+       InitialContext ctx = new InitialContext();
+       
+       ConnectionFactory cf = (ConnectionFactory) ctx.lookup("/ConnectionFactory");
+       Connection conn = cf.createConnection();
+       conn.start();
+       Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+       Queue queueA = (Queue) ctx.lookup("/queue/A");
+       MessageConsumer cons = sess.createConsumer(queueA);
+       assertNotNull(cons.receive(5000));
+       
+       conn.close();
+   }
 }



More information about the jboss-cvs-commits mailing list