[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