[jboss-cvs] JBoss Messaging SVN: r2601 - trunk/tests/src/org/jboss/test/messaging/jms/server/destination.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Apr 24 07:03:48 EDT 2007
Author: sergeypk
Date: 2007-04-24 07:03:47 -0400 (Tue, 24 Apr 2007)
New Revision: 2601
Modified:
trunk/tests/src/org/jboss/test/messaging/jms/server/destination/QueueManagementTest.java
Log:
Test for JBMESSAGING-926 - negative message count.
Modified: trunk/tests/src/org/jboss/test/messaging/jms/server/destination/QueueManagementTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/server/destination/QueueManagementTest.java 2007-04-24 10:50:44 UTC (rev 2600)
+++ trunk/tests/src/org/jboss/test/messaging/jms/server/destination/QueueManagementTest.java 2007-04-24 11:03:47 UTC (rev 2601)
@@ -234,7 +234,71 @@
ServerManagement.invoke(ServerManagement.getServerPeerObjectName(), "disableMessageCounters", null, null);
}
}
-
+
+ public void testNegativeMessageCountBug() throws Exception
+ {
+ InitialContext ic = new InitialContext(ServerManagement.getJNDIEnvironment());
+ ConnectionFactory cf = (ConnectionFactory)ic.lookup("/ConnectionFactory");
+
+ final String queueName = "QueueNegativeMessageCount";
+ final ObjectName destObjectName =
+ new ObjectName("jboss.messaging.destination:service=Queue,name=" + queueName);
+
+ ServerManagement.deployQueue(queueName);
+ ServerManagement.invoke(ServerManagement.getServerPeerObjectName(), "enableMessageCounters", null, null);
+
+ try
+ {
+ Queue queue = (Queue)ic.lookup("/queue/" + queueName);
+
+ // Send some messages to the queue
+ final int maxMessageCount = 3;
+
+ Connection conn = cf.createConnection();
+
+ Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageProducer prod = session.createProducer(queue);
+ prod.setDeliveryMode(DeliveryMode.PERSISTENT);
+
+ for (int i = 0; i < maxMessageCount; i++)
+ {
+ TextMessage m = session.createTextMessage("Message #" + Integer.toString(i + 1));
+ prod.send(m);
+ }
+
+ conn.close();
+
+ // Receive a message
+ conn = cf.createConnection();
+ session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ MessageConsumer cons = session.createConsumer(queue);
+
+ conn.start();
+
+ Message message = cons.receive(500L);
+ assertNotNull(message);
+ assertEquals("Message #1", ((TextMessage) message).getText());
+
+ ServerManagement.invoke(destObjectName, "removeAllMessages", new Object[0], new String[0]);
+
+ // Assert that all messages were in fact removed.
+ message = cons.receive(500L);
+ assertNull(message);
+
+ // Check that the message count is 0.
+ Integer count = (Integer)ServerManagement.getAttribute(destObjectName, "MessageCount");
+ assertEquals(0, count.intValue());
+
+ conn.close();
+ }
+ finally
+ {
+ ServerManagement.undeployQueue(queueName);
+ ServerManagement.invoke(ServerManagement.getServerPeerObjectName(), "disableMessageCounters", null, null);
+ }
+ }
+
public void testScheduledMessageCount() throws Exception
{
InitialContext ic = new InitialContext(ServerManagement.getJNDIEnvironment());
More information about the jboss-cvs-commits
mailing list