@Override
  public synchronized void nodeDeleted(String path) {
    if (validate(path)) {
      try {
        if (ZKUtil.watchAndCheckExists(watcher, path)) {
          getDataAndWatch(path);
        }
      } catch (KeeperException e) {
        LOG.warn("Unexpected exception handling nodeDeleted event for path: " + path, e);
      }
    } else {
      removeQueue(path);
    }
  }
Set data for client ZK and retry until succeed. Be very careful to prevent dead loop when
modifying this method
@param node the znode to set on client ZK
@param data the data to set to client ZK
@throws InterruptedException if the thread is interrupted during process
hbase-server/src/main/java/org/apache/hadoop/hbase/master/zksyncer/ClientZKSyncer.java