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

lizhimin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 869ab5e20 [ISSUE #5975] Fix getUserTopicConfig Impl contains system 
topic (#5976)
869ab5e20 is described below

commit 869ab5e20e472812c1b82fa4b42e01498b7d439d
Author: Shuangxi Ding <[email protected]>
AuthorDate: Thu Feb 9 18:55:54 2023 +0800

    [ISSUE #5975] Fix getUserTopicConfig Impl contains system topic (#5976)
    
    Co-authored-by: 徒钟 <[email protected]>
---
 .../apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java   | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
 
b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
index fc3e079fe..6744487f6 100644
--- 
a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
+++ 
b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
@@ -53,6 +53,7 @@ import org.apache.rocketmq.common.ServiceState;
 import org.apache.rocketmq.common.ThreadFactoryImpl;
 import org.apache.rocketmq.common.TopicConfig;
 import org.apache.rocketmq.common.UtilAll;
+import org.apache.rocketmq.common.constant.PermName;
 import org.apache.rocketmq.common.help.FAQUrl;
 import org.apache.rocketmq.common.message.MessageClientExt;
 import org.apache.rocketmq.common.message.MessageConst;
@@ -61,6 +62,7 @@ import org.apache.rocketmq.common.message.MessageExt;
 import org.apache.rocketmq.common.message.MessageQueue;
 import org.apache.rocketmq.common.message.MessageRequestMode;
 import org.apache.rocketmq.common.namesrv.NamesrvUtil;
+import org.apache.rocketmq.common.topic.TopicValidator;
 import org.apache.rocketmq.common.utils.NetworkUtil;
 import org.apache.rocketmq.logging.org.slf4j.Logger;
 import org.apache.rocketmq.logging.org.slf4j.LoggerFactory;
@@ -1658,8 +1660,14 @@ public class DefaultMQAdminExtImpl implements 
MQAdminExt, MQAdminExtInner {
         TopicList topicList = 
this.mqClientInstance.getMQClientAPIImpl().getSystemTopicListFromBroker(brokerAddr,
 timeoutMillis);
         Iterator<Entry<String, TopicConfig>> iterator = 
topicConfigSerializeWrapper.getTopicConfigTable().entrySet().iterator();
         while (iterator.hasNext()) {
-            String topic = iterator.next().getKey();
-            if (topicList.getTopicList().contains(topic) || !specialTopic && 
(topic.startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX) || 
topic.startsWith(MixAll.DLQ_GROUP_TOPIC_PREFIX))) {
+            TopicConfig topicConfig = iterator.next().getValue();
+            if (topicList.getTopicList().contains(topicConfig.getTopicName())
+                    || 
TopicValidator.isSystemTopic(topicConfig.getTopicName())) {
+                iterator.remove();
+            } else if (!specialTopic && 
StringUtils.startsWithAny(topicConfig.getTopicName(),
+                    MixAll.RETRY_GROUP_TOPIC_PREFIX, 
MixAll.DLQ_GROUP_TOPIC_PREFIX)) {
+                iterator.remove();
+            } else if (!PermName.isValid(topicConfig.getPerm())) {
                 iterator.remove();
             }
         }

Reply via email to