public void problemsRecoveryFailed(@NotNull List<VFSInitException> triedToRecover,
                                     @NotNull VFSInitException.ErrorCategory category,
                                     @NotNull String message,
                                     @Nullable Throwable cause) {
    problemsDuringLoad.removeAll(triedToRecover);
    VFSInitException recoveryFailed = (cause == null) ?
                                      new VFSInitException(category, message) :
                                      new VFSInitException(category, message, cause);
    triedToRecover.forEach(recoveryFailed::addSuppressed);
    problemsDuringLoad.add(recoveryFailed);

    LOG.warn("[VFS load problem]: " +
             triedToRecover.stream().map(VFSInitException::category).map(Object::toString).collect(joining()) +
             " recovery attempt fails ('" + message + "')"
    );
  }
public void problemsRecoveryFailed(@NotNull List<VFSInitException> triedToRecover,
                                     @NotNull VFSInitException.ErrorCategory category,
                                     @NotNull String message,
                                     @Nullable Throwable cause)