@RequiresReadLock
  @Override
  public @Nullable PsiDirectory findDirectory(@NotNull VirtualFile vFile) {
    Project project = myManager.getProject();
    if (project.isDisposed()) {
      LOG.error("Access to psi files should not be performed after project disposal: " + project);
    }

    if (!vFile.isValid()) {
      LOG.error(new InvalidVirtualFileAccessException(vFile));
      return null;
    }

    if (!vFile.isDirectory()) {
      return null;
    }
    dispatchPendingEvents();

    return findDirectoryImpl(vFile, getVFileToPsiDirMap());
  }
@RequiresReadLock
  @Override
  public @Nullable PsiDirectory findDirectory(@NotNull VirtualFile vFile)