code: public static void ensurePath(ZooKeeperClient zkClient, List<ACL> acl, String path)
        throws ZooKeeperConnectionException, InterruptedException, KeeperException {
      Objects.requireNonNull(zkClient);
      Objects.requireNonNull(path);
      if (!path.startsWith("/")) {
        throw new IllegalArgumentException();
      }
  
      ensurePathInternal(zkClient, acl, path);
    }
docs: Ensures the given {@code path} exists in the ZK cluster accessed by {@code zkClient}.  If the
  path already exists, nothing is done; however if any portion of the path is missing, it will be
  created with the given {@code acl} as a persistent zookeeper node.  The given {@code path} must
  be a valid zookeeper absolute path.
  
  @param zkClient the client to use to access the ZK cluster
  @param acl the acl to use if creating path nodes
  @param path the path to ensure exists
  @throws ZooKeeperConnectionException if there was a problem accessing the ZK cluster
  @throws InterruptedException if we were interrupted attempting to connect to the ZK cluster
  @throws KeeperException if there was a problem in ZK