]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8178 ignore rows with null data
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 30 Sep 2016 08:29:00 +0000 (10:29 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 30 Sep 2016 08:29:00 +0000 (10:29 +0200)
server/sonar-server/src/main/java/org/sonar/server/test/index/TestResultSetIterator.java
server/sonar-server/src/test/java/org/sonar/server/test/index/TestResultSetIteratorTest.java

index 995bfa7ffd5186a18f8f2a353e75c865ecbe2cf0..525a6b0a2f7d942f5ca5cf59129d3bc5a50ad460 100644 (file)
 package org.sonar.server.test.index;
 
 import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.nio.charset.StandardCharsets;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import javax.annotation.Nullable;
@@ -76,7 +78,13 @@ public class TestResultSetIterator extends ResultSetIterator<Row> {
     String projectUuid = rs.getString(1);
     String fileUuid = rs.getString(2);
     Date updatedAt = new Date(rs.getLong(3));
-    List<DbFileSources.Test> data = FileSourceDto.decodeTestData(rs.getBinaryStream(4));
+    InputStream dataInput = rs.getBinaryStream(4);
+    List<DbFileSources.Test> data;
+    if (dataInput != null) {
+      data = FileSourceDto.decodeTestData(dataInput);
+    } else {
+      data = Collections.emptyList();
+    }
     return toRow(projectUuid, fileUuid, updatedAt, data);
   }
 
index 7485db97ce0bd4cd54b7d5efa93bbb38d5273891..46d484986b48f5339cc2e66dd696a209522aeffd 100644 (file)
@@ -201,4 +201,16 @@ public class TestResultSetIteratorTest {
     }
   }
 
+  @Test
+  public void read_does_not_fail_if_null_data() throws Exception {
+    dbTester.prepareDbUnit(getClass(), "shared.xml");
+    TestTesting.updateDataColumn(dbTester.getSession(), "F1", (byte[])null);
+
+    underTest = TestResultSetIterator.create(dbTester.getDbClient(), dbTester.getSession(), 0L, null);
+
+    FileSourcesUpdaterHelper.Row row = underTest.next();
+    assertThat(row.getFileUuid()).isEqualTo("F1");
+    assertThat(row.getUpdateRequests()).isEmpty();
+    assertThat(underTest.hasNext()).isFalse();
+  }
 }