[jboss-cvs] JBoss Messaging SVN: r7916 - in branches/Branch_1_4: tests/src/org/jboss/test/messaging/jms/clustering and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Dec 3 10:30:36 EST 2009
Author: gaohoward
Date: 2009-12-03 10:30:36 -0500 (Thu, 03 Dec 2009)
New Revision: 7916
Modified:
branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/clustering/DestinationRedeployTest.java
Log:
JBMESSAGING-1774
JBMESSAGING-1773
Modified: branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2009-12-02 07:33:19 UTC (rev 7915)
+++ branches/Branch_1_4/src/main/org/jboss/jms/server/endpoint/ServerSessionEndpoint.java 2009-12-03 15:30:36 UTC (rev 7916)
@@ -1829,12 +1829,12 @@
JBossDestination dest = new JBossQueue(queueName);
- //We don't care about redelivery delays and number of attempts for a direct consumer
-
+ //We don't care about redelivery delays for a direct consumer
+ //We do care about number of attempts, see JBMESSAGING-1774
ServerConsumerEndpoint ep =
new ServerConsumerEndpoint(consumerID, binding.queue,
binding.queue.getName(), this, selectorString, false,
- dest, null, null, 0, -1, true, false, prefetchSize);
+ dest, null, null, 0, 1, true, false, prefetchSize);
ConsumerAdvised advised;
Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/clustering/DestinationRedeployTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/clustering/DestinationRedeployTest.java 2009-12-02 07:33:19 UTC (rev 7915)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/clustering/DestinationRedeployTest.java 2009-12-03 15:30:36 UTC (rev 7916)
@@ -23,6 +23,9 @@
package org.jboss.test.messaging.jms.clustering;
+import java.util.HashMap;
+import java.util.Iterator;
+
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
@@ -260,11 +263,14 @@
}
}
+ private HashMap<String, TextMessage> msgSet = new HashMap<String, TextMessage>();
+
//send some messages to topics and receive a few of them. Then do redeploy and try to receive the rest.
+ //also this is a valid test for https://jira.jboss.org/jira/browse/JBMESSAGING-1774
public void testRedeployTopicNoMessageLoss2() throws Exception
{
String msgBase = "testRedeployTopicNoMessageLoss2";
- int numMsg = 50;
+ int numMsg = 500;
deployDestinations();
@@ -279,18 +285,20 @@
MessageConsumer sub1 = sess.createDurableSubscriber(cTopic, "sub1");
MessageConsumer sub2 = sess.createDurableSubscriber(nTopic, "sub2");
- sendMessages(2, cTopic, msgBase, numMsg);
- sendMessages(0, nTopic, msgBase, numMsg);
+ sendMessages(2, cTopic, msgBase+"cTopic", numMsg);
+ sendMessages(0, nTopic, msgBase+"nTopic", numMsg);
//receive 10
conn.start();
+
for (int i = 0; i < 10; i++)
{
TextMessage rm = (TextMessage)sub1.receive(5000);
- log.info("--Message received: " + rm);
- assertEquals(msgBase + i, rm.getText());
+ assertEquals(msgBase + "cTopic" + i, rm.getText());
+ msgSet.remove(rm.getText());
rm = (TextMessage)sub2.receive(5000);
- assertEquals(msgBase + i, rm.getText());
+ assertEquals(msgBase + "nTopic" + i, rm.getText());
+ msgSet.remove(rm.getText());
}
conn.close();
@@ -307,19 +315,53 @@
sub2 = sess.createDurableSubscriber(nTopic, "sub2");
+ boolean success = true;
for (int i = 10; i < numMsg; i++)
{
TextMessage rm = (TextMessage)sub1.receive(5000);
log.info("--Message received: " + rm);
- assertEquals(msgBase + i, rm.getText());
- rm = (TextMessage)sub2.receive(5000);
- assertEquals(msgBase + i, rm.getText());
+ if (rm == null)
+ {
+ success = false;
+ }
+ else
+ {
+ msgSet.remove(rm.getText());
+ }
}
+ for (int i = 10; i < numMsg; i++)
+ {
+ TextMessage rm = (TextMessage)sub2.receive(5000);
+ log.info("--Message received: " + rm);
+ if (rm == null)
+ {
+ success = false;
+ }
+ else
+ {
+ msgSet.remove(rm.getText());
+ }
+ }
+
+ if (!success)
+ {
+ log.info("=======test failed, missing messages: ");
+ Iterator<String> itmsg = msgSet.keySet().iterator();
+ while (itmsg.hasNext())
+ {
+ String key = itmsg.next();
+ TextMessage msg = msgSet.get(key);
+ log.info("=====> " + key + " <--> " + msg);
+ }
+ }
+
sub1.close();
sub2.close();
sess.unsubscribe("sub1");
sess.unsubscribe("sub2");
+
+ assertTrue(success);
}
finally
{
@@ -869,6 +911,8 @@
{
TextMessage msg = sess.createTextMessage(msgBase + i);
producer.send(msg);
+ log.info("----message sent: " + msg.getText());
+ msgSet.put(msg.getText(), msg);
}
}
catch (Exception e)
More information about the jboss-cvs-commits
mailing list