This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new c36a3a8  Bug fixes after incremental build upload done
c36a3a8 is described below

commit c36a3a8d8ae4df402a15c95c38fd190d269a758e
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Thu Sep 20 19:30:57 2018 +0300

    Bug fixes after incremental build upload done
---
 .../main/java/org/apache/ignite/ci/ITeamcity.java  | 16 ++++-----
 .../apache/ignite/ci/IgnitePersistentTeamcity.java | 41 +++++++++++-----------
 .../org/apache/ignite/ci/IgniteTeamcityHelper.java | 27 +++++++-------
 .../java/org/apache/ignite/ci/util/HttpUtil.java   |  7 +++-
 .../org/apache/ignite/ci/web/model/Version.java    |  2 +-
 5 files changed, 50 insertions(+), 43 deletions(-)

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
index ccc3fea..42ed6cb 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
@@ -70,13 +70,13 @@ public interface ITeamcity extends AutoCloseable {
     };
 
     /**
-     * @param projectId suite ID (string without spaces)
-     * @param branch
-     * @param cnt builds count
-     * @param sinceBuildNumber
-     * @return list of builds in historical order, recent builds coming last
+     * @param projectId suite ID (string without spaces).
+     * @param branch Branch name in TC identification.
+     * @param cnt builds count.
+     * @param sinceBuildId Some build ID in the past to to use as minimal 
build to export.
+     * @return list of builds in historical order, recent builds coming last.
      */
-    List<BuildRef> getFinishedBuilds(String projectId, String branch, Long 
cnt, Integer sinceBuildNumber);
+    List<BuildRef> getFinishedBuilds(String projectId, String branch, Long 
cnt, Integer sinceBuildId);
 
     /**
      * Includes snapshot dependencies failed builds into list
@@ -95,10 +95,10 @@ public interface ITeamcity extends AutoCloseable {
      * @param projectId suite ID (string without spaces)
      * @param branch branch in TC identification
      * @param cnt builds count
-     * @param sinceBuildNumber limit builds export with some build number, not 
operational for Persistent connection
+     * @param sinceBuildId limit builds export with some build number, not 
operational for Persistent connection
      * @return list of builds in historical order, recent builds coming last
      */
-    List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String projectId, 
String branch, Long cnt, Integer sinceBuildNumber);
+    List<BuildRef> getFinishedBuildsIncludeSnDepFailed(String projectId, 
String branch, Long cnt, Integer sinceBuildId);
 
     /**   */
     CompletableFuture<List<BuildRef>> getRunningBuilds(@Nullable String 
branch);
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
index 4d49121..8ea41ce 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
@@ -42,6 +42,7 @@ import java.util.stream.StreamSupport;
 import javax.annotation.Nullable;
 import javax.cache.Cache;
 import javax.inject.Inject;
+import javax.ws.rs.BadRequestException;
 
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
@@ -301,33 +302,33 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
                 }
             }
 
-            //todo sinceBuild:(number:) // --todo -10 build numbers
-
-            Integer sinceBuildNum = null;
+            Integer sinceBuildId;
             if (persistedBuilds != null) {
                 List<BuildRef> prevData = persistedBuilds.getData();
                 if (prevData.size() >= MAX_BUILDS_IN_PAST_TO_RELOAD) {
                     BuildRef buildRef = prevData.get(prevData.size() - 
MAX_BUILDS_IN_PAST_TO_RELOAD);
 
-                    if (!Strings.isNullOrEmpty(buildRef.buildNumber)) {
-                        try {
-                            sinceBuildNum = 
Integer.valueOf(buildRef.buildNumber);
-                        } catch (NumberFormatException e) {
-                            logger.info("", e);
-                        }
-                    }
+                    sinceBuildId = buildRef.getId();
+                } else {
+                    sinceBuildId = null;
                 }
-            }
+            } else
+                sinceBuildId = null;
+
             List<BuildRef> dataFromRest;
             try {
-                dataFromRest = realLoad.apply(key, sinceBuildNum);
-            }
-            catch (Exception e) {
+                dataFromRest = realLoad.apply(key, sinceBuildId);
+            } catch (Exception e) {
                 if (Throwables.getRootCause(e) instanceof 
FileNotFoundException) {
                     System.err.println("Build history not found for build : " 
+ key);
                     dataFromRest = Collections.emptyList();
-                }
-                else
+                } else if (Throwables.getRootCause(e) instanceof 
BadRequestException) {
+                    //probably referenced build not found
+                    if (sinceBuildId != null)
+                        dataFromRest = realLoad.apply(key, null);
+                    else
+                        throw e;
+                } else
                     throw e;
             }
             final List<BuildRef> persistedList = persistedBuilds != null ? 
persistedBuilds.getData() : null;
@@ -381,8 +382,8 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
         //todo may be support sinceBuildNo
         final SuiteInBranch suiteInBranch = new SuiteInBranch(projectId, 
branch);
 
-        List<BuildRef> buildRefs = loadBuildHistory(buildHistCache(), 60, cnt, 
suiteInBranch,
-            (key, sinceBuildNumber) -> teamcity.getFinishedBuilds(projectId, 
branch, cnt, sinceBuildNumber));
+        List<BuildRef> buildRefs = loadBuildHistory(buildHistCache(), 90, cnt, 
suiteInBranch,
+            (key, sinceBuildId) -> teamcity.getFinishedBuilds(projectId, 
branch, cnt, sinceBuildId));
 
         if (cnt == null)
             return buildRefs;
@@ -416,8 +417,8 @@ public class IgnitePersistentTeamcity implements 
IAnalyticsEnabledTeamcity, ITea
                                                                         
Integer ignored) {
         final SuiteInBranch suiteInBranch = new SuiteInBranch(projectId, 
branch);
 
-        return loadBuildHistory(buildHistIncFailedCache(), 60, cnt, 
suiteInBranch,
-            (key, sinceBuildNumber) -> 
teamcity.getFinishedBuildsIncludeSnDepFailed(projectId, branch, cnt, 
sinceBuildNumber));
+        return loadBuildHistory(buildHistIncFailedCache(), 91, cnt, 
suiteInBranch,
+            (key, sinceBuildId) -> 
teamcity.getFinishedBuildsIncludeSnDepFailed(projectId, branch, cnt, 
sinceBuildId));
     }
 
 
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityHelper.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityHelper.java
index 41da839..ffe66e2 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityHelper.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgniteTeamcityHelper.java
@@ -473,11 +473,11 @@ public class IgniteTeamcityHelper implements ITeamcity {
                                            boolean dfltFilter,
                                            @Nullable String state,
                                            @Nullable Long cnt,
-                                           @Nullable Integer sinceBuildNumber) 
{
+                                           @Nullable Integer sinceBuildId) {
         String btFilter = isNullOrEmpty(buildTypeId) ? "" : ",buildType:" + 
buildTypeId;
         String stateFilter = isNullOrEmpty(state) ? "" : (",state:" + state);
         String branchFilter = isNullOrEmpty(branchName) ? "" : ",branch:" + 
branchName;
-        String buildNoFilter = sinceBuildNumber == null ? "" : 
",sinceBuild:(number:" + sinceBuildNumber + ")";
+        String buildNoFilter = sinceBuildId == null ? "" : ",sinceBuild:(id:" 
+ sinceBuildId + ")";
         long cntFilter = cnt == null ? DEFAULT_BUILDS_COUNT : cnt;
 
         return sendGetXmlParseJaxb(host + "app/rest/latest/builds"
@@ -571,13 +571,13 @@ public class IgniteTeamcityHelper implements ITeamcity {
     public List<BuildRef> getFinishedBuilds(String projectId,
                                             String branch,
                                             Long cnt,
-                                            @Nullable Integer 
sinceBuildNumber) {
+                                            @Nullable Integer sinceBuildId) {
         List<BuildRef> finished = getBuildHistory(projectId,
             UrlUtil.escape(branch),
             true,
             null,
             cnt,
-            sinceBuildNumber);
+            sinceBuildId);
 
         return 
finished.stream().filter(BuildRef::isNotCancelled).collect(Collectors.toList());
     }
@@ -585,13 +585,13 @@ public class IgniteTeamcityHelper implements ITeamcity {
     /** {@inheritDoc} */
     @Override
     @AutoProfiling public List<BuildRef> 
getFinishedBuildsIncludeSnDepFailed(String projectId, String branch) {
-        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
null);
+        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
null, null);
     }
 
     /** {@inheritDoc} */
     @Override
-    @AutoProfiling public List<BuildRef> 
getFinishedBuildsIncludeSnDepFailed(String projectId, String branch, Long cnt, 
Integer sinceBuildNumber) {
-        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
cnt);
+    @AutoProfiling public List<BuildRef> 
getFinishedBuildsIncludeSnDepFailed(String projectId, String branch, Long cnt, 
Integer sinceBuildId) {
+        return getBuildsInState(projectId, branch, BuildRef.STATE_FINISHED, 
cnt, sinceBuildId);
     }
 
     /** {@inheritDoc} */
@@ -607,14 +607,15 @@ public class IgniteTeamcityHelper implements ITeamcity {
     }
 
     private List<BuildRef> getBuildsInState(
-        @Nullable final String projectId,
-        @Nullable final String branch,
-        @Nonnull final String state,
-        @Nullable final Long cnt) {
+            @Nullable final String projectId,
+            @Nullable final String branch,
+            @Nonnull final String state,
+            @Nullable final Long cnt,
+            @Nullable final Integer sinceBuildId) {
         List<BuildRef> finished = getBuildHistory(projectId,
             UrlUtil.escape(branch),
             false,
-            state, cnt, null);
+            state, cnt, sinceBuildId);
         return 
finished.stream().filter(BuildRef::isNotCancelled).collect(Collectors.toList());
     }
 
@@ -623,7 +624,7 @@ public class IgniteTeamcityHelper implements ITeamcity {
         @Nullable final String branch,
         @Nonnull final String state) {
 
-        return getBuildsInState(projectId, branch, state, null);
+        return getBuildsInState(projectId, branch, state, null, null);
     }
 
     @Override
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java
index a703c12..ab0c698 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/util/HttpUtil.java
@@ -36,6 +36,8 @@ import 
org.apache.ignite.ci.web.rest.login.ServiceUnauthorizedException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.BadRequestException;
+
 /**
  * Methods for sending HTTP requests
  */
@@ -158,12 +160,15 @@ public class HttpUtil {
         if (resCode / 100 == 2)
             return con.getInputStream();
 
+        if (resCode == 400)
+            throw new 
BadRequestException(readIsToString(con.getErrorStream()));
+
         if (resCode == 401)
             throw new ServiceUnauthorizedException("Service " + con.getURL() + 
" returned forbidden error.");
 
         if (resCode == 404)
             throw new FileNotFoundException("Service " + con.getURL() + " 
returned not found error."
-                + readIsToString(con.getErrorStream()));
+                    + readIsToString(con.getErrorStream()));
 
         throw new IllegalStateException("Invalid Response Code : " + resCode + 
":\n"
                 + readIsToString(con.getErrorStream()));
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
index 1a08ce6..2e4879d 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
@@ -22,7 +22,7 @@ package org.apache.ignite.ci.web.model;
     public static final String DEFAULT_CONTACT = "[email protected]";
 
     /** TC Helper Version. */
-    public String version = "20180919";
+    public String version = "20180920";
 
     /** Ignite version. */
     public String ignVer;

Reply via email to