[hornetq-commits] JBoss hornetq SVN: r10145 - in branches/Branch_2_2_EAP: tests/src/org/hornetq/tests/integration/jms/server/management and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jan 25 16:58:43 EST 2011


Author: clebert.suconic at jboss.com
Date: 2011-01-25 16:58:43 -0500 (Tue, 25 Jan 2011)
New Revision: 10145

Modified:
   branches/Branch_2_2_EAP/src/main/org/hornetq/jms/management/impl/JMSTopicControlImpl.java
   branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java
Log:
HORNETQ-629 - fixing dropTopicSubscription management operation

Modified: branches/Branch_2_2_EAP/src/main/org/hornetq/jms/management/impl/JMSTopicControlImpl.java
===================================================================
--- branches/Branch_2_2_EAP/src/main/org/hornetq/jms/management/impl/JMSTopicControlImpl.java	2011-01-25 18:00:45 UTC (rev 10144)
+++ branches/Branch_2_2_EAP/src/main/org/hornetq/jms/management/impl/JMSTopicControlImpl.java	2011-01-25 21:58:43 UTC (rev 10145)
@@ -267,7 +267,12 @@
       String[] queues = addressControl.getQueueNames();
       for (String queue : queues)
       {
-         serverControl.destroyQueue(queue);
+         // Drop all subscription shouldn't delete the dummy queue used to identify if the topic exists on the core queues.
+         // we will just ignore this queue
+         if (!queue.equals(managedTopic.getAddress()))
+         {
+            serverControl.destroyQueue(queue);
+         }
       }
    }
 

Modified: branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java
===================================================================
--- branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java	2011-01-25 18:00:45 UTC (rev 10144)
+++ branches/Branch_2_2_EAP/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java	2011-01-25 21:58:43 UTC (rev 10145)
@@ -18,7 +18,9 @@
 import javax.jms.Connection;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
 import javax.jms.Session;
+import javax.jms.TextMessage;
 import javax.jms.TopicSubscriber;
 
 import junit.framework.Assert;
@@ -28,7 +30,6 @@
 import org.hornetq.api.jms.management.SubscriptionInfo;
 import org.hornetq.api.jms.management.TopicControl;
 import org.hornetq.core.config.Configuration;
-import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.HornetQServers;
@@ -298,29 +299,44 @@
    public void testDropAllSubscriptions() throws Exception
    {
       Connection connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
-      TopicSubscriber durableSubscriber_1 = JMSUtil.createDurableSubscriber(connection_1,
-                                                                            topic,
-                                                                            clientID,
-                                                                            subscriptionName);
+      connection_1.setClientID(clientID);
+      Session sess1 = connection_1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      TopicSubscriber durableSubscriber_1 = sess1.createDurableSubscriber(topic, subscriptionName);
+
       Connection connection_2 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
-      TopicSubscriber durableSubscriber_2 = JMSUtil.createDurableSubscriber(connection_2,
-                                                                            topic,
-                                                                            clientID,
-                                                                            subscriptionName + "2");
+      connection_2.setClientID(clientID + "2");
+      Session sess2 = connection_1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      TopicSubscriber durableSubscriber_2 = sess2.createDurableSubscriber(topic, subscriptionName + "2");
+      
+      connection_1.start();
+      connection_2.start();
 
+      Session sess = connection_1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      MessageProducer prod = sess.createProducer(topic);
+      
+      TextMessage msg1 = sess.createTextMessage("tst1");
+      prod.send(msg1);
+      
+      assertNotNull(durableSubscriber_1.receive(5000));
+      assertNotNull(durableSubscriber_2.receive(5000));
+      
+      connection_1.close();
+      connection_2.close();
+
       TopicControl topicControl = createManagementControl();
-      Assert.assertEquals(2, topicControl.getSubscriptionCount());
 
-      durableSubscriber_1.close();
-      durableSubscriber_2.close();
-
       Assert.assertEquals(2, topicControl.getSubscriptionCount());
       topicControl.dropAllSubscriptions();
 
       Assert.assertEquals(0, topicControl.getSubscriptionCount());
 
-      connection_1.close();
-      connection_2.close();
+      connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      connection_1.setClientID(clientID);
+      sess = connection_1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      prod = sess.createProducer(topic);
+      TextMessage msg2 = sess.createTextMessage("tst2");
+      prod.send(msg2);
+      
    }
 
    public void testRemoveAllMessages() throws Exception



More information about the hornetq-commits mailing list