[Jboss-cvs] JBoss Messaging SVN: r1184 - in trunk/tests: etc src/org/jboss/test/messaging/jms

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 3 14:52:14 EDT 2006


Author: ovidiu.feodorov at jboss.com
Date: 2006-08-03 14:52:12 -0400 (Thu, 03 Aug 2006)
New Revision: 1184

Modified:
   trunk/tests/etc/log4j.xml
   trunk/tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java
Log:
temporary version of CTSMiscellaneousTest.java

Modified: trunk/tests/etc/log4j.xml
===================================================================
--- trunk/tests/etc/log4j.xml	2006-08-03 11:33:15 UTC (rev 1183)
+++ trunk/tests/etc/log4j.xml	2006-08-03 18:52:12 UTC (rev 1184)
@@ -1,99 +1,65 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
 <!-- $Id$ -->
 
-<!--
-   | For more configuration infromation and examples see the Jakarta Log4j
-   | owebsite: http://jakarta.apache.org/log4j
- -->
-
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
 
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A time/date based rolling appender -->
    <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
-      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
 
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
       <param name="File" value="${module.output}/logs/messaging-tests${remote.test.suffix}.trace.log"/>
+      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+      <param name="Threshold" value="TRACE#org.jboss.logging.XLevel"/>
 
       <!-- since majority of the tests are ran in fork mode by ant, the log file is overwritten
            for each test. We need to append if we want to preserve a full testsuite run log.
            Make sure the build script clears this log at the beginning of each run.
       -->
       <param name="Append" value="true"/>
-      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
 
-      <param name="Threshold" value="INFO"/>
-
-      <!--
-      <param name="Threshold" value="TRACE#org.jboss.logging.XLevel"/>
-      -->
-
       <layout class="org.apache.log4j.PatternLayout">
-         <!-- The default pattern: Date Priority [Category] Message\n -->
-         <!-- <param name="ConversionPattern" value="%d %-5p @%t [%c] %m%n"/> -->
-         <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n -->
          <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
 
       </layout>
    </appender>
 
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
       <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
       <param name="Target" value="System.out"/>
-
-      <param name="Threshold" value="TRACE#org.jboss.logging.XLevel"/>
       <param name="Threshold" value="INFO"/>
-
       <layout class="org.apache.log4j.PatternLayout">
-         <!-- The default pattern: Date Priority [Category] Message\n -->
          <param name="ConversionPattern" value="%t %d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
       </layout>
    </appender>
 
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
    <category name="org.apache">
       <priority value="INFO"/>
    </category>
 
-   <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
    <category name="org.jgroups">
       <priority value="WARN"/>
    </category>
 
-   <!-- Limit JBoss categories -->
    <category name="org.jboss">
       <priority value="INFO"/>
    </category>
 
+   <category name="org.jboss.messaging">
+      <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+   </category>
 
+   <category name="org.jboss.jms">
+      <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+   </category>
 
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
+   <category name="org.jboss.test">
+      <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+   </category>
 
    <root>
       <appender-ref ref="CONSOLE"/>
       <appender-ref ref="FILE"/>
    </root>
 
-
 </log4j:configuration>

Modified: trunk/tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java	2006-08-03 11:33:15 UTC (rev 1183)
+++ trunk/tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java	2006-08-03 18:52:12 UTC (rev 1184)
@@ -295,6 +295,99 @@
 
    }
 
+   public void testContestedQueueOnRollback2() throws Exception
+   {
+      ConnectionFactory cf = (JBossConnectionFactory)ic.lookup("/ConnectionFactory");
+      Queue queue = (Queue)ic.lookup("/queue/Queue");
+
+      Connection c =  cf.createConnection();
+      try
+      {
+         Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         TextMessage tm = s.createTextMessage("blah");
+         s.createProducer(queue).send(tm);
+      }
+      finally
+      {
+         c.close();
+      }
+
+      // message is in the queue
+      log.debug("message is in the queue");
+
+      c = cf.createConnection();
+      c.start();
+
+      try
+      {
+         Session s = c.createSession(true, Session.SESSION_TRANSACTED);
+         MessageConsumer cons = s.createConsumer(queue);
+
+         Session s2 = c.createSession(true, Session.SESSION_TRANSACTED);
+         final MessageConsumer cons2 = s2.createConsumer(queue);
+
+         Session sessionToRollback = s;
+         MessageConsumer cc = cons2;
+         TextMessage rm = (TextMessage)cons.receiveNoWait();
+
+         if (rm == null)
+         {
+            sessionToRollback = s2;
+            cc = cons;
+            rm = (TextMessage)cons.receiveNoWait();
+         }
+
+         assertEquals("blah", rm.getText());
+
+         final Slot slot = new Slot();
+         final MessageConsumer contestingConsumer = cc;
+
+         new Thread(new Runnable()
+         {
+            public void run()
+            {
+               try
+               {
+                  log.debug("contester blocking to receive");
+                  Message m = contestingConsumer.receive(8000);
+                  log.debug("contester received " + m);
+
+                  if (m != null)
+                  {
+                     // if I receive a message, unlock the slot
+                     slot.put(m);
+                  }
+               }
+               catch(Exception e)
+               {
+                  log.error("contested receive failed", e);
+               }
+            }
+         }, "Contester Thread").start();
+
+         // wait for the contested thread to start receiving
+         Thread.sleep(2000);
+
+         // send the message back to the queue
+         log.debug("rolling back");
+         sessionToRollback.rollback();
+         log.debug("rolled back");
+
+         // wait for the contester to receive
+         TextMessage rm2 = (TextMessage)slot.poll(5000);
+
+         assertEquals("blah", rm2.getText());
+      }
+      finally
+      {
+         log.debug("closing connection");
+         c.close();
+      }
+
+
+   }
+
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------




More information about the jboss-cvs-commits mailing list