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();
}
}