diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java index a1e1f083523..1851a22b2f0 100644 --- a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java +++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java @@ -38,6 +38,8 @@ * */ public class CacheListener implements TreeCacheListener { + private static final byte[] EMPTY_BYTES = new byte[0]; + private Map> keyListeners = new ConcurrentHashMap<>(); private CountDownLatch initializedLatch; private String rootPath; @@ -83,6 +85,9 @@ public void childEvent(CuratorFramework aClient, TreeCacheEvent event) throws Ex return; } + if (value == null) { + value = EMPTY_BYTES; + } ConfigChangeEvent configChangeEvent = new ConfigChangeEvent(key, new String(value, StandardCharsets.UTF_8), changeType); Set listeners = keyListeners.get(key); if (CollectionUtils.isNotEmpty(listeners)) {