[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