]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10480 support reading long version in snapshot
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 22 Mar 2018 15:33:44 +0000 (16:33 +0100)
committerSonarTech <sonartech@sonarsource.com>
Thu, 5 Apr 2018 18:20:47 +0000 (20:20 +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 18f476ea72e817dc37977d7c902cf5881a2d2b0a..8c6a3bbc91ec689a94ea085db83202c4c72f45cf 100644 (file)
@@ -128,6 +128,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 d993ed585b16b178459696c59360fb1beec2f0e0..88fcd2f82036df82bb8c76d01a6e9e7ab60dec5d 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;
@@ -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)