public void executeTask(@Nullable ProgressIndicator customIndicator) {
      // this is the cancellation check
      indicator.checkCanceled();
      indicator.setIndeterminate(true);

      ProgressIndicator indicator = customIndicator == null ? this.indicator : customIndicator;
      indicator.checkCanceled();

      beforeTask();
      if (AppExecutorUtil.propagateContext() && myChildContext != null) {
        myChildContext.runAsCoroutine(() -> {
          try (AccessToken ignored = ThreadContext.installThreadContext(myChildContext.getContext(), true)) {
            task.perform(indicator);
          }
        });
      }
      else {
        task.perform(indicator);
      }
    }
public void executeTask(@Nullable ProgressIndicator customIndicator)