private SpaceBuildStatusInfo getExternalCheckStatus()

in commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/space/SpacePublisher.java [143:177]


  private SpaceBuildStatusInfo getExternalCheckStatus(@NotNull BuildRevision revision, @Nullable SBuildType buildType) throws PublisherException {
    String buildFullName = buildType != null ? buildType.getFullName() : UNKNOWN_BUILD_CONFIGURATION;
    AtomicReference<PublisherException> exception = new AtomicReference<>(null);
    SpaceBuildStatusInfo status = myStatusesCache.getStatusFromCache(revision, buildFullName, () -> {
      ResponseEntityProcessor<SpaceBuildStatusInfo[]> processor = new ResponseEntityProcessor<>(SpaceBuildStatusInfo[].class);
      final SpaceToken token;
      try {
        token = requestToken(revision.getRoot().getName(), buildFullName);
      } catch (PublisherException e) {
        exception.set(e);
        return Collections.emptyList();
      }
      Map<String, String> headers = new LinkedHashMap<>();
      headers.put(HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON.getMimeType());
      token.toHeader(headers);
      SpaceBuildStatusInfo[] commitStatuses;
      try {
        String url = buildStatusesUrl(revision);
        commitStatuses = get(url, null, headers, processor);
      } catch (PublisherException e) {
        exception.set(e);
        return Collections.emptyList();
      }
      if (commitStatuses == null || commitStatuses.length == 0) {
        return Collections.emptyList();
      }
      return Arrays.asList(commitStatuses);
    }, spaceStatus -> spaceStatus.taskName);

    if (exception.get() != null) {
      throw exception.get();
    }

    return status;
  }