void forEachRoot(@NotNull ObjIntConsumer<? super String> rootConsumer) {
    checkNotClosed();
    try {
      treeAccessor.forEachRoot((rootId, rootUrlId) -> {
        String rootUrl = getNameByNameId(rootUrlId);
        rootConsumer.accept(rootUrl, rootId);
      });
    }
    catch (IOException e) {
      throw handleError(e);
    }
  }
void forEachRoot(@NotNull ObjIntConsumer<? super String> rootConsumer)