public @NotNull RunResult<T> run() {
    try {
      myActionRunnable.run(this);
    }
    catch (ProcessCanceledException e) {
      throw e; // this exception may occur from time to time and it shouldn't be caught
    }
    catch (Throwable t) {
      myThrowable = t;
      ExceptionUtil.rethrowAllAsUnchecked(t);
    }
    finally {
      myActionRunnable = null;
    }

    return this;
  }
public @NotNull RunResult<T> run()