Skip to content

Commit 5285952

Browse files
cvictorychickenlj
authored andcommitted
check curator event with empty data value (#4126)
fixes #3866
1 parent ebafc18 commit 5285952

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package org.apache.dubbo.remoting.zookeeper.curator;
1818

1919
import org.apache.dubbo.common.URL;
20+
import org.apache.dubbo.common.logger.Logger;
21+
import org.apache.dubbo.common.logger.LoggerFactory;
2022
import org.apache.dubbo.common.utils.StringUtils;
2123
import org.apache.dubbo.remoting.zookeeper.ChildListener;
2224
import org.apache.dubbo.remoting.zookeeper.DataListener;
@@ -49,6 +51,8 @@
4951

5052
public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZookeeperClient.CuratorWatcherImpl, CuratorZookeeperClient.CuratorWatcherImpl> {
5153

54+
protected static final Logger logger = LoggerFactory.getLogger(CuratorZookeeperClient.class);
55+
5256
static final Charset CHARSET = Charset.forName("UTF-8");
5357
private final CuratorFramework client;
5458
private Map<String, TreeCache> treeCacheMap = new ConcurrentHashMap<>();
@@ -288,6 +292,9 @@ public void process(WatchedEvent event) throws Exception {
288292
@Override
289293
public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {
290294
if (dataListener != null) {
295+
if (logger.isInfoEnabled()) {
296+
logger.info("listen the zookeeper changed. The changed data:" + event.getData());
297+
}
291298
TreeCacheEvent.Type type = event.getType();
292299
EventType eventType = null;
293300
String content = null;
@@ -296,12 +303,12 @@ public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exc
296303
case NODE_ADDED:
297304
eventType = EventType.NodeCreated;
298305
path = event.getData().getPath();
299-
content = new String(event.getData().getData(), CHARSET);
306+
content = event.getData().getData() == null ? "" : new String(event.getData().getData(), CHARSET);
300307
break;
301308
case NODE_UPDATED:
302309
eventType = EventType.NodeDataChanged;
303310
path = event.getData().getPath();
304-
content = new String(event.getData().getData(), CHARSET);
311+
content = event.getData().getData() == null ? "" : new String(event.getData().getData(), CHARSET);
305312
break;
306313
case NODE_REMOVED:
307314
path = event.getData().getPath();

0 commit comments

Comments
 (0)