diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java index e3a06e599800..b14cd11b83ff 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java @@ -17,6 +17,8 @@ package org.apache.dubbo.remoting.zookeeper.curator; import org.apache.dubbo.common.URL; +import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.remoting.zookeeper.ChildListener; import org.apache.dubbo.remoting.zookeeper.DataListener; @@ -49,6 +51,8 @@ public class CuratorZookeeperClient extends AbstractZookeeperClient { + protected static final Logger logger = LoggerFactory.getLogger(CuratorZookeeperClient.class); + static final Charset CHARSET = Charset.forName("UTF-8"); private final CuratorFramework client; private Map treeCacheMap = new ConcurrentHashMap<>(); @@ -288,6 +292,9 @@ public void process(WatchedEvent event) throws Exception { @Override public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception { if (dataListener != null) { + if (logger.isInfoEnabled()) { + logger.info("listen the zookeeper changed. The changed data:" + event.getData()); + } TreeCacheEvent.Type type = event.getType(); EventType eventType = null; String content = null; @@ -296,12 +303,12 @@ public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exc case NODE_ADDED: eventType = EventType.NodeCreated; path = event.getData().getPath(); - content = new String(event.getData().getData(), CHARSET); + content = event.getData().getData() == null ? "" : new String(event.getData().getData(), CHARSET); break; case NODE_UPDATED: eventType = EventType.NodeDataChanged; path = event.getData().getPath(); - content = new String(event.getData().getData(), CHARSET); + content = event.getData().getData() == null ? "" : new String(event.getData().getData(), CHARSET); break; case NODE_REMOVED: path = event.getData().getPath();