code: @Override
    public Task<String> ensurePathExists(String path) {
      return exists(path).flatMap(stat -> {
        if (!stat.isPresent()) {
          Task<String> createIfAbsent = create(path, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
              .recoverWith("recover from NodeExistsException", e -> {
                if (e instanceof KeeperException.NodeExistsException) {
                  return Task.value(path);
                } else {
                  return Task.failure(e);
                }
              });
          String parent = path.substring(0, path.lastIndexOf('/'));
          if (parent.isEmpty()) { // parent is root
            return createIfAbsent;
          } else {
            return ensurePathExists(parent).flatMap(unused -> createIfAbsent);
          }
        } else {
          return Task.value(path);
        }
      });
    }
docs: {@inheritDoc}