Author: clebert.suconic(a)jboss.com
Date: 2010-06-22 15:53:54 -0400 (Tue, 22 Jun 2010)
New Revision: 9352
Modified:
trunk/tests/jms-tests/src/org/hornetq/jms/tests/selector/SelectorTest.java
Log:
Adding test to investigate a customer / user issue
Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/selector/SelectorTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/selector/SelectorTest.java 2010-06-22
15:25:48 UTC (rev 9351)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/selector/SelectorTest.java 2010-06-22
19:53:54 UTC (rev 9352)
@@ -933,7 +933,125 @@
}
}
}
+
+
+ // Test case proposed by a customer on this user forum:
+ //
http://community.jboss.org/thread/153426?tstart=0
+ public void under_investigation_testMultipleConsumers() throws Exception
+ {
+ Connection conn = null;
+ try
+ {
+ conn = getConnectionFactory().createConnection();
+
+ conn.setClientID("SomeClientID");
+
+ conn.start();
+
+ Session session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+
+ MessageProducer msgProducer =
session.createProducer(HornetQServerTestCase.queue1);
+
+ TextMessage tm;
+ /* Publish messages */
+ tm = session.createTextMessage();
+ tm.setText("1");
+ tm.setStringProperty("PROP1", "VALUE1");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+
+ tm = session.createTextMessage();
+ tm.setText("2");
+ tm.setStringProperty("PROP1", "VALUE1");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+
+ tm = session.createTextMessage();
+ tm.setText("3");
+ tm.setStringProperty("PROP2", "VALUE2");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+
+ tm = session.createTextMessage();
+ tm.setText("4");
+ tm.setStringProperty("PROP2", "VALUE2");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+
+ tm = session.createTextMessage();
+ tm.setText("5");
+ tm.setStringProperty("PROP1", "VALUE1");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+
+ tm = session.createTextMessage();
+ tm.setText("6");
+ tm.setStringProperty("PROP1", "VALUE1");
+ tm.setStringProperty("PROP2", "VALUE2");
+ msgProducer.send(tm);
+ System.out.println ("Sent message with id [" + tm.getJMSMessageID() +
"]");
+ msgProducer.close();
+ msgProducer = null;
+
+
+ MessageConsumer msgConsumer =
session.createConsumer(HornetQServerTestCase.queue1, "PROP2 =
'VALUE2'");
+
+ tm = (TextMessage) msgConsumer.receive(5000);
+
+ assertNotNull(tm);
+
+ assertEquals("3", tm.getText());
+ assertEquals("VALUE2", tm.getStringProperty("PROP2"));
+
+ tm.acknowledge();
+
+ conn.close(); // this should close the consumer, producer and session associated
with the connection
+
+
+ // Reopen the connection and consumer
+
+ conn = getConnectionFactory().createConnection();
+ conn.start();
+
+ session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+
+ msgConsumer = session.createConsumer(HornetQServerTestCase.queue1);
+
+ tm = (TextMessage)msgConsumer.receive(5000);
+ assertEquals("1", tm.getText());
+ assertEquals("VALUE1", tm.getStringProperty("PROP1"));
+
+
+ tm = (TextMessage)msgConsumer.receive(5000);
+ assertEquals("2", tm.getText());
+ assertEquals("VALUE1", tm.getStringProperty("PROP1"));
+
+ tm = (TextMessage)msgConsumer.receive(5000);
+ assertEquals("4", tm.getText());
+ assertEquals("VALUE2", tm.getStringProperty("PROP2"));
+
+
+ tm = (TextMessage)msgConsumer.receive(5000);
+ assertEquals("5", tm.getText());
+ assertEquals("VALUE1", tm.getStringProperty("PROP1"));
+
+ tm = (TextMessage)msgConsumer.receive(5000);
+ assertEquals("6", tm.getText());
+ assertEquals("VALUE1", tm.getStringProperty("PROP1"));
+ assertEquals("VALUE2", tm.getStringProperty("PROP2"));
+
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------