[jboss-cvs] JBoss Messaging SVN: r2029 - in trunk: src/main/org/jboss/messaging/core/message and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 23 21:35:46 EST 2007
Author: ovidiu.feodorov at jboss.com
Date: 2007-01-23 21:35:46 -0500 (Tue, 23 Jan 2007)
New Revision: 2029
Added:
trunk/tests/src/org/jboss/test/messaging/jms/message/ExpiredMessageTest.java
Modified:
trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java
trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
Log:
Extra logging and an extra message expiry tests, while investigating http://jira.jboss.com/jira/browse/JBMESSAGING-775
Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-01-24 01:03:06 UTC (rev 2028)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2007-01-24 02:35:46 UTC (rev 2029)
@@ -736,11 +736,11 @@
void expireDelivery(Delivery del, Queue expiryQueue) throws Throwable
{
- if (trace) { log.trace("Reference has expired: " + del.getReference()); }
+ if (trace) { log.trace(this + " detected expired message " + del.getReference()); }
if (expiryQueue != null)
{
- if (trace) { log.trace("Sending to expiry queue"); }
+ if (trace) { log.trace(this + " sending expired message to expiry queue " + expiryQueue); }
JBossMessage copy = makeCopyForDLQOrExpiry(true, del);
@@ -748,7 +748,7 @@
}
else
{
- log.warn("No expiry queue has been configured so removing the reference");
+ log.warn("No expiry queue has been configured so removing expired " + del.getReference());
}
}
Modified: trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java 2007-01-24 01:03:06 UTC (rev 2028)
+++ trunk/src/main/org/jboss/messaging/core/message/RoutableSupport.java 2007-01-24 02:35:46 UTC (rev 2029)
@@ -284,10 +284,7 @@
if (overtime >= 0)
{
// discard it
- if (trace)
- {
- log.trace("Message " + messageID + " expired by " + overtime + " ms");
- }
+ if (trace) { log.trace(this + " expired by " + overtime + " ms"); }
return true;
}
Added: trunk/tests/src/org/jboss/test/messaging/jms/message/ExpiredMessageTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/message/ExpiredMessageTest.java (rev 0)
+++ trunk/tests/src/org/jboss/test/messaging/jms/message/ExpiredMessageTest.java 2007-01-24 02:35:46 UTC (rev 2029)
@@ -0,0 +1,104 @@
+/**
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.test.messaging.jms.message;
+
+import org.jboss.test.messaging.MessagingTestCase;
+import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.logging.Logger;
+
+import javax.naming.InitialContext;
+import javax.jms.ConnectionFactory;
+import javax.jms.Queue;
+import javax.jms.Connection;
+import javax.jms.Session;
+import javax.jms.MessageProducer;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+
+/**
+ * @author <a href="mailto:ovidiu at jboss.org">Ovidiu Feodorov</a>
+ * @version <tt>$Revision$</tt>
+ * $Id$
+ */
+public class ExpiredMessageTest extends MessagingTestCase
+{
+ // Constants ------------------------------------------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(ExpiredMessageTest.class);
+
+ // Static ---------------------------------------------------------------------------------------
+
+ // Attributes -----------------------------------------------------------------------------------
+
+ private InitialContext ic;
+
+ // Constructors ---------------------------------------------------------------------------------
+
+ public ExpiredMessageTest(String name)
+ {
+ super(name);
+ }
+
+ // Public ---------------------------------------------------------------------------------------
+
+ public void testSimpleExpiration() throws Exception
+ {
+ ConnectionFactory cf = (ConnectionFactory)ic.lookup("/ConnectionFactory");
+ Queue queue = (Queue)ic.lookup("/queue/expiredMessageTestQueue");
+
+ Connection conn = cf.createConnection();
+
+ Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ MessageProducer prod = session.createProducer(queue);
+ prod.setTimeToLive(1);
+
+ Message m = session.createTextMessage("This message will die");
+
+ prod.send(m);
+
+ // wait for the message to die
+
+ Thread.sleep(1000);
+
+ MessageConsumer cons = session.createConsumer(queue);
+
+ conn.start();
+
+ assertNull(cons.receive(3000));
+ }
+
+ // Package protected ----------------------------------------------------------------------------
+
+ // Protected ------------------------------------------------------------------------------------
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ ServerManagement.start("all");
+
+ ic = new InitialContext(ServerManagement.getJNDIEnvironment());
+
+ ServerManagement.deployQueue("expiredMessageTestQueue");
+
+ log.debug("setup done");
+ }
+
+ protected void tearDown() throws Exception
+ {
+ ServerManagement.undeployQueue("expiredMessageTestQueue");
+
+ ServerManagement.stop();
+
+ super.tearDown();
+ }
+
+ // Private --------------------------------------------------------------------------------------
+
+ // Inner classes --------------------------------------------------------------------------------
+}
Property changes on: trunk/tests/src/org/jboss/test/messaging/jms/message/ExpiredMessageTest.java
___________________________________________________________________
Name: svn:keywords
+ Id LastChangedDate Author Revision
Modified: trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java 2007-01-24 01:03:06 UTC (rev 2028)
+++ trunk/tests/src/org/jboss/test/messaging/jms/selector/SelectorTest.java 2007-01-24 02:35:46 UTC (rev 2029)
@@ -255,92 +255,94 @@
// http://jira.jboss.org/jira/browse/JBMESSAGING-775
-// public void testManyQueueWithExpired() throws Exception
-// {
-// String selector1 = "beatle = 'john'";
-//
-// Connection conn = cf.createConnection();
-// conn.start();
-//
-// Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
-//
-// MessageProducer prod = sess.createProducer(queue);
-//
-// for (int j = 0; j < 100; j++)
-// {
-// Message m = sess.createMessage();
-//
-// m.setStringProperty("beatle", "john");
-//
-// prod.setTimeToLive(0);
-//
-// prod.send(m);
-//
-// m = sess.createMessage();
-//
-// m.setStringProperty("beatle", "john");
-//
-// prod.setTimeToLive(1);
-//
-// prod.send(m);
-//
-// m = sess.createMessage();
-//
-// m.setStringProperty("beatle", "kermit the frog");
-//
-// prod.setTimeToLive(0);
-//
-// prod.send(m);
-//
-// m = sess.createMessage();
-//
-// m.setStringProperty("beatle", "kermit the frog");
-//
-// m.setJMSExpiration(System.currentTimeMillis());
-//
-// prod.setTimeToLive(1);
-//
-// prod.send(m);
-// }
-//
-// Thread.sleep(2000);
-//
-// MessageConsumer cons1 = sess.createConsumer(queue, selector1);
-//
-// for (int j = 0; j < 100; j++)
-// {
-// Message m = cons1.receive(1000);
-//
-// assertNotNull(m);
-//
-// assertEquals("john", m.getStringProperty("beatle"));
-// }
-//
-// Message m = cons1.receive(1000);
-//
-// assertNull(m);
-//
-// String selector2 = "beatle = 'kermit the frog'";
-//
-// MessageConsumer cons2 = sess.createConsumer(queue, selector2);
-//
-// for (int j = 0; j < 100; j++)
-// {
-// m = cons2.receive(1000);
-//
-// assertNotNull(m);
-//
-// assertEquals("kermit the frog", m.getStringProperty("beatle"));
-// }
-//
-// m = cons2.receive(1000);
-//
-// assertNull(m);
-//
-//
-// sess.close();
-// }
+ public void testManyQueueWithExpired() throws Exception
+ {
+ String selector1 = "beatle = 'john'";
+ Connection conn = cf.createConnection();
+ conn.start();
+
+ Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ int NUM_MESSAGES = 2;
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ for (int j = 0; j < NUM_MESSAGES; j++)
+ {
+ Message m = sess.createMessage();
+
+ m.setStringProperty("beatle", "john");
+
+ prod.setTimeToLive(0);
+
+ prod.send(m);
+
+ m = sess.createMessage();
+
+ m.setStringProperty("beatle", "john");
+
+ prod.setTimeToLive(1);
+
+ prod.send(m);
+
+ m = sess.createMessage();
+
+ m.setStringProperty("beatle", "kermit the frog");
+
+ prod.setTimeToLive(0);
+
+ prod.send(m);
+
+ m = sess.createMessage();
+
+ m.setStringProperty("beatle", "kermit the frog");
+
+ m.setJMSExpiration(System.currentTimeMillis());
+
+ prod.setTimeToLive(1);
+
+ prod.send(m);
+ }
+
+ Thread.sleep(2000);
+
+ MessageConsumer cons1 = sess.createConsumer(queue, selector1);
+
+ for (int j = 0; j < NUM_MESSAGES; j++)
+ {
+ Message m = cons1.receive(1000);
+
+ assertNotNull(m);
+
+ assertEquals("john", m.getStringProperty("beatle"));
+ }
+
+ Message m = cons1.receive(1000);
+
+ assertNull(m);
+
+ String selector2 = "beatle = 'kermit the frog'";
+
+ MessageConsumer cons2 = sess.createConsumer(queue, selector2);
+
+ for (int j = 0; j < NUM_MESSAGES; j++)
+ {
+ m = cons2.receive(1000);
+
+ assertNotNull(m);
+
+ assertEquals("kermit the frog", m.getStringProperty("beatle"));
+ }
+
+ m = cons2.receive(1000);
+
+ assertNull(m);
+
+
+ sess.close();
+ }
+
public void testManyRedeliveriesTopic() throws Exception
{
String selector1 = "beatle = 'john'";
More information about the jboss-cvs-commits
mailing list