private void cacheMissedRootFromPersistence(int rootId) {
    if (missedRootIds.contains(rootId)) {
      THROTTLED_LOG.warn("Can't find root[#" + rootId + "] in persistence");
      //don't repeat long lookup if already know it won't find anything
      return;
    }
    Ref<String> missedRootUrlRef = new Ref<>();
    try {
      vfsPeer.treeAccessor().forEachRoot((rootFileId, rootUrlId) -> {
        if (rootId == rootFileId) {
          missedRootUrlRef.set(getNameByNameId(rootUrlId));
        }
      });
    }
    catch (IOException e) {
      throw vfsPeer.handleError(e);
    }

    if (missedRootUrlRef.isNull()) {
      missedRootIds.add(rootId);
      THROTTLED_LOG.warn("Can't find root[#" + rootId + "] in persistence");
      return;
    }

    ensureRootCached(getRootPath(missedRootUrlRef.get(), vfsPeer.getName(rootId)), missedRootUrlRef.get());
  }
private void cacheMissedRootFromPersistence(int rootId)