]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10480 support reading long version in snapshot 3162/head
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 22 Mar 2018 15:33:44 +0000 (16:33 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 27 Mar 2018 14:49:59 +0000 (16:49 +0200)
server/sonar-db-dao/src/main/java/org/sonar/db/component/SnapshotDto.java
server/sonar-db-dao/src/main/resources/org/sonar/db/component/SnapshotMapper.xml
server/sonar-db-dao/src/test/java/org/sonar/db/component/SnapshotDaoTest.java

index 1dfec6f1b93ce0f30730dc412e3c44c1a1b33572..cca2afb12dd395058d7d35445b6d6f109b4814c3 100644 (file)
@@ -127,6 +127,13 @@ public final class SnapshotDto {
     return this;
   }
 
+  /**
+   * Used by MyBatis
+   */
+  private void setRawVersion(@Nullable String version) {
+    this.version = version;
+  }
+
   public SnapshotDto setPeriodMode(@Nullable String p) {
     periodMode = p;
     return this;
index d22ffebb330bb9c5537a00a23b5b7461bcc5b535..3cf493d3241600e078a5eb22745de06fca2d8b6f 100644 (file)
@@ -11,7 +11,7 @@
     s.status as status,
     s.purge_status as purgeStatus,
     s.islast as last,
-    s.version as version,
+    s.version as rawVersion,
     s.period1_mode as periodMode,
     s.period1_param as periodParam,
     s.period1_date as periodDate
index d7128820a72808cb68f0059fc7985b40acd2587d..45372008dccce0b9b8cd7dc3e43fbd622bef84ab 100644 (file)
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
+import org.apache.commons.lang.StringUtils;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -190,7 +191,7 @@ public class SnapshotDaoTest {
   }
 
   @Test
-  public void select_first_snapshots() throws Exception {
+  public void select_first_snapshots() {
     ComponentDto project = newPrivateProjectDto(db.getDefaultOrganization());
     db.getDbClient().componentDao().insert(dbSession, project);
 
@@ -399,6 +400,20 @@ public class SnapshotDaoTest {
     assertThat(result.getComponentUuid()).isEqualTo("P1");
   }
 
+  @Test
+  public void snashotDto_can_hold_version_larger_than_100_read_from_database() {
+    SnapshotDto analysis = insertAnalysis("P1", "A1", STATUS_PROCESSED, false);
+    db.commit();
+    String tooLongVersion = StringUtils.repeat("d", 200);
+    db.executeUpdateSql("update snapshots set version='" + tooLongVersion + "' where uuid='" + analysis.getUuid() + "'");
+    db.commit();
+
+    assertThat(underTest.selectByUuid(dbSession, analysis.getUuid())
+      .map(SnapshotDto::getVersion))
+        .contains(tooLongVersion);
+
+  }
+
   private SnapshotDto insertAnalysis(String projectUuid, String uuid, String status, boolean isLastFlag) {
     SnapshotDto snapshot = newAnalysis(newPrivateProjectDto(OrganizationTesting.newOrganizationDto(), projectUuid))
       .setLast(isLastFlag)