From 44ea896de87cd426ad9b77eb4da0bb66ddfd67c7 Mon Sep 17 00:00:00 2001 From: zengqiao Date: Tue, 11 Jan 2022 11:37:23 +0800 Subject: [PATCH] fix NPE when flush logical cluster and physical cluster not in cache or not exist --- .../service/cache/LogicalClusterMetadataManager.java | 3 ++- .../service/cache/PhysicalClusterMetadataManager.java | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/LogicalClusterMetadataManager.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/LogicalClusterMetadataManager.java index 744101ef..d58efc9a 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/LogicalClusterMetadataManager.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/LogicalClusterMetadataManager.java @@ -208,7 +208,8 @@ public class LogicalClusterMetadataManager { // 计算逻辑集群到Topic名称的映射 Set topicNameSet = PhysicalClusterMetadataManager.getBrokerTopicNum( logicalClusterDO.getClusterId(), - brokerIdSet); + brokerIdSet + ); LOGICAL_CLUSTER_ID_TOPIC_NAME_MAP.put(logicalClusterDO.getId(), topicNameSet); // 计算Topic名称到逻辑集群的映射 diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/PhysicalClusterMetadataManager.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/PhysicalClusterMetadataManager.java index c5f09820..402cb0e4 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/PhysicalClusterMetadataManager.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/cache/PhysicalClusterMetadataManager.java @@ -539,9 +539,12 @@ public class PhysicalClusterMetadataManager { } public static Set getBrokerTopicNum(Long clusterId, Set brokerIdSet) { - Set topicNameSet = new HashSet<>(); - Map metadataMap = TOPIC_METADATA_MAP.get(clusterId); + if (metadataMap == null) { + return new HashSet<>(); + } + + Set topicNameSet = new HashSet<>(); for (String topicName: metadataMap.keySet()) { try { TopicMetadata tm = metadataMap.get(topicName);