public static <T, E extends Throwable>
  T disallowTreeLoading(@NotNull ThrowableComputable<? extends T, E> computable, @NotNull Supplier<String> debugInfo) throws E {
    if (myDisallowedInfo.get() != null) {
      return computable.compute();
    }
    else {
      try {
        myDisallowedInfo.set(debugInfo);
        return computable.compute();
      }
      finally {
        myDisallowedInfo.set(null);
      }
    }
  }
public static <T, E extends Throwable>
  T disallowTreeLoading(@NotNull ThrowableComputable<? extends T, E> computable, @NotNull Supplier<String> debugInfo)