@Nullable
  private static <T> T computeValue(@NotNull Project project,
                                    @NotNull java.util.function.Function<? super ProjectLevelVcsManager, ? extends T> provider) {
    return ReadAction.compute(() -> {
      //  IDEADEV-17916, when e.g. ContentRevision.getContent is called in
      //  a future task after the component has been disposed.
      T result = null;
      if (!project.isDisposed()) {
        ProjectLevelVcsManager manager = ProjectLevelVcsManager.getInstance(project);
        result = manager != null ? provider.apply(manager) : null;
      }
      return result;
    });
  }
@Nullable
  private static <T> T computeValue(@NotNull Project project,
                                    @NotNull java.util.function.Function<? super ProjectLevelVcsManager, ? extends T> provider)