gemmellr commented on code in PR #5414:
URL: https://github.com/apache/activemq-artemis/pull/5414#discussion_r1905331100


##########
artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompSession.java:
##########
@@ -231,6 +232,9 @@ public void closed() {
    public void disconnect(ServerConsumer consumerId, String errorDescription) {
       StompSubscription stompSubscription = 
subscriptions.remove(consumerId.getID());
       if (stompSubscription != null) {
+         if (stompSubscription.isNoLocal()) {
+            noLocalSubscriptionCount.decrementAndGet();
+         }

Review Comment:
   This disconnect method looks to be the only place a decrement is done...what 
if the subscription is explicitly unsubscribed and so this doesnt occur?



##########
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/stomp/StompTest.java:
##########
@@ -1501,6 +1501,26 @@ public void testSubscribeToTopicWithNoLocal() throws 
Exception {
       conn.disconnect();
    }
 
+   @Test
+   public void testSubscribeToTopicWithNoLocalAndNormal() throws Exception {
+      conn.connect(defUser, defPass);
+      subscribeTopic(conn, RandomUtil.randomString(), null, null, true, true);
+      subscribeTopic(conn, RandomUtil.randomString(), null, null, true, false);
+      int normalCount = 0;
+      int noLocalCount = 0;
+      for (Binding binding : 
server.getPostOffice().getBindingsForAddress(SimpleString.of(getTopicPrefix() + 
getTopicName())).getBindings()) {
+         if (binding.getFilter() != null && 
binding.getFilter().getFilterString().toString().contains("__AMQ_CID")) {
+            noLocalCount++;
+         } else {
+            normalCount++;
+         }
+      }
+      assertEquals(1, noLocalCount);
+      assertEquals(1, normalCount);
+
+      conn.disconnect();

Review Comment:
   Probably worth verifying removals behave are as expected also, and perhaps 
sending a message after and checking the expected behaviours, e.g around the 
header.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org
For additional commands, e-mail: gitbox-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to