This is an automated email from the ASF dual-hosted git repository.

cshannon pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new 9f9a35eb2 AMQ-9157 - Add missing dispatched advisory topic to 
getAllDestinationAdvisoryTopics() method in AdvisorySupport
9f9a35eb2 is described below

commit 9f9a35eb29089cea29d3cadc0397b562a92a2045
Author: Christopher L. Shannon (cshannon) <[email protected]>
AuthorDate: Thu Nov 17 09:16:07 2022 -0500

    AMQ-9157 - Add missing dispatched advisory topic to 
getAllDestinationAdvisoryTopics() method in AdvisorySupport
    
    Adds missing dispached advisory topics to getAllDestinationAvisoryTopics()
    method in AdvisorySupport which is used to clean up on destination removal
    and also a note about virtual destination consumer advisories
---
 .../main/java/org/apache/activemq/advisory/AdvisorySupport.java    | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git 
a/activemq-client/src/main/java/org/apache/activemq/advisory/AdvisorySupport.java
 
b/activemq-client/src/main/java/org/apache/activemq/advisory/AdvisorySupport.java
index 5aee0c886..a3a468e58 100644
--- 
a/activemq-client/src/main/java/org/apache/activemq/advisory/AdvisorySupport.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/advisory/AdvisorySupport.java
@@ -94,6 +94,12 @@ public final class AdvisorySupport {
     public static ActiveMQTopic[] 
getAllDestinationAdvisoryTopics(ActiveMQDestination destination) throws 
JMSException {
         ArrayList<ActiveMQTopic> result = new ArrayList<ActiveMQTopic>();
 
+        //Note - Sicne this method is primarily used for removing destinations 
and clean up
+        //don't add VirtualDestinationConsumerAdvisoryTopic here as we want to 
keep listening
+        //for demand on composite destinations that may be forwarded for 
Virtual topics even after dest removal.
+        //This is because virtual destinations or composite destinations can 
trigger demand so we need to still listen
+        //Cleanup will happen automatically if there are no consumers on the 
advisory (due to the bridge
+        //no longer including the destination) when the inactive GC task runs
         result.add(getConsumerAdvisoryTopic(destination));
         result.add(getProducerAdvisoryTopic(destination));
         result.add(getExpiredMessageTopic(destination));
@@ -103,6 +109,7 @@ public final class AdvisorySupport {
         result.add(getMessageDiscardedAdvisoryTopic(destination));
         result.add(getMessageDeliveredAdvisoryTopic(destination));
         result.add(getMessageConsumedAdvisoryTopic(destination));
+        result.add(getMessageDispatchedAdvisoryTopic(destination));
         result.add(getMessageDLQdAdvisoryTopic(destination));
         result.add(getFullAdvisoryTopic(destination));
 

Reply via email to