public static List<NodeAndData> getChildDataAndWatchForNewChildren(
            ZooKeeperWatcher zkw, String baseNode) throws KeeperException {
        List<String> nodes = listChildrenAndWatchForNewChildren(zkw, baseNode);
        List<NodeAndData> newNodes = new ArrayList<NodeAndData>();
        if (nodes != null) {
            for (String node : nodes) {
                String nodePath = joinZNode(baseNode, node);
                byte[] data = getDataAndWatch(zkw, nodePath);
                if (data != null) {
                    newNodes.add(new NodeAndData(nodePath, data));
                } else {
                    logger.error("Get data is null for nodePath " + nodePath);
                }
            }
        }
        return newNodes;
    }
Returns the date of child zNodes of the specified zNode. Also sets a watch
on the specified zNode which will capture a NodeDeleted event on the
specified zNode as well as NodeChildrenChanged if any children of the
specified zNode are created or deleted.

Returns null if the specified node does not exist. Otherwise returns a list
of children of the specified node. If the node exists but it has no
children, an empty list will be returned.

@param zkw
         zk reference
@param baseNode
         path of node to list and watch children of
@return list of data of children of the specified node, an empty list if
        the node exists but has no children, and null if the node does not
        exist
@throws KeeperException
          if unexpected zookeeper exception
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/common/zookeeper/ZKUtil.java