diff --git a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java index e860f290741..5850309e8cd 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java @@ -323,7 +323,7 @@ public ConcurrentHashMap subGroupTable(String d int maxGroupNum) { // [groupSeq, groupSeq + maxGroupNum) int beginIndex = groupSeq; - if (StringUtils.isBlank(dataVersion) || !Objects.equals(DataVersion.fromJson(dataVersion, DataVersion.class), this.dataVersion)) { + if (beginIndex != 0 && (StringUtils.isBlank(dataVersion) || !Objects.equals(DataVersion.fromJson(dataVersion, DataVersion.class), getDataVersion()))) { beginIndex = 0; log.info("get sub subscription group table from {} due to {}", beginIndex, StringUtils.isBlank(dataVersion) ? "DataVersion Empty" : "DataVersion Changed"); diff --git a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java index 51b5f5492ad..e4e97b83c25 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/topic/TopicConfigManager.java @@ -725,7 +725,7 @@ public ConcurrentHashMap subTopicConfigTable(String dataVer int maxTopicNum) { // [topicSeq, topicSeq + maxTopicNum) int beginIndex = topicSeq; - if (StringUtils.isBlank(dataVersion) || !Objects.equals(DataVersion.fromJson(dataVersion, DataVersion.class), this.dataVersion)) { + if (beginIndex != 0 && (StringUtils.isBlank(dataVersion) || !Objects.equals(DataVersion.fromJson(dataVersion, DataVersion.class), getDataVersion()))) { beginIndex = 0; log.info("get sub topic config table from {} due to {}", beginIndex, StringUtils.isBlank(dataVersion) ? "DataVersion Empty" : "DataVersion Changed");