private @Nullable Progressive createProcessSdksAction(@NotNull UnknownSdkSnapshot snapshot,
                                                        @NotNull ShowStatusCallback showStatus) {
    // it may run on EDT, for the standard task
    var task = createProcessSdksAction(snapshot);
    if (task == null) {
      return null;
    }

    return indicator -> {
      try {
        var result = task.apply(indicator);
        showStatus.showStatus(result, indicator);
      }
      catch (Throwable t) {
        if (t instanceof ControlFlowException) {
          showStatus.showInterruptedStatus();
          ExceptionUtil.rethrow(t);
        }

        LOG.warn("Failed to complete SDKs lookup. " + t.getMessage(), t);
        showStatus.showEmptyStatus();
      }
    };
  }
private @Nullable Progressive createProcessSdksAction(@NotNull UnknownSdkSnapshot snapshot,
                                                        @NotNull ShowStatusCallback showStatus)