summaryrefslogtreecommitdiffstats
path: root/sonar-db/src
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-09-28 17:09:41 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-09-28 17:09:41 +0200
commit028dbdbd4bd653f3e3beb7b7a8692b0120645da3 (patch)
treed8bc514ab21e607e99a94b589391138796ec74d8 /sonar-db/src
parente6aae0fe8e3c6edf7b6be72bcf7932f355199a5c (diff)
downloadsonarqube-028dbdbd4bd653f3e3beb7b7a8692b0120645da3.tar.gz
sonarqube-028dbdbd4bd653f3e3beb7b7a8692b0120645da3.zip
SONAR-8185 FileSourceDao.selectLineHashes supports null in DB
Diffstat (limited to 'sonar-db/src')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/source/FileSourceDao.java7
-rw-r--r--sonar-db/src/test/java/org/sonar/db/source/FileSourceDaoTest.java19
2 files changed, 25 insertions, 1 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/source/FileSourceDao.java b/sonar-db/src/main/java/org/sonar/db/source/FileSourceDao.java
index 1ca87ef7103..efc7665bda2 100644
--- a/sonar-db/src/main/java/org/sonar/db/source/FileSourceDao.java
+++ b/sonar-db/src/main/java/org/sonar/db/source/FileSourceDao.java
@@ -26,6 +26,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.Collections;
import java.util.List;
import javax.annotation.CheckForNull;
import org.apache.commons.dbutils.DbUtils;
@@ -70,7 +71,11 @@ public class FileSourceDao implements Dao {
pstmt.setString(2, Type.SOURCE);
rs = pstmt.executeQuery();
if (rs.next()) {
- return END_OF_LINE_SPLITTER.splitToList(rs.getString(1));
+ String string = rs.getString(1);
+ if (string == null) {
+ return Collections.emptyList();
+ }
+ return END_OF_LINE_SPLITTER.splitToList(string);
}
return null;
} catch (SQLException e) {
diff --git a/sonar-db/src/test/java/org/sonar/db/source/FileSourceDaoTest.java b/sonar-db/src/test/java/org/sonar/db/source/FileSourceDaoTest.java
index 7047b7a34e4..edb21c475ea 100644
--- a/sonar-db/src/test/java/org/sonar/db/source/FileSourceDaoTest.java
+++ b/sonar-db/src/test/java/org/sonar/db/source/FileSourceDaoTest.java
@@ -109,6 +109,25 @@ public class FileSourceDaoTest {
}
@Test
+ public void selectLineHashes_does_not_fail_when_lineshashes_is_null() {
+
+ dbTester.prepareDbUnit(getClass(), "shared.xml");
+
+ underTest.insert(new FileSourceDto()
+ .setProjectUuid("PRJ_UUID")
+ .setFileUuid("FILE2_UUID")
+ .setBinaryData("FILE2_BINARY_DATA".getBytes())
+ .setDataHash("FILE2_DATA_HASH")
+ .setSrcHash("FILE2_HASH")
+ .setDataType(Type.SOURCE)
+ .setCreatedAt(1500000000000L)
+ .setUpdatedAt(1500000000001L)
+ .setRevision("123456789"));
+
+ assertThat(underTest.selectLineHashes(dbTester.getSession(), "FILE2_UUID")).isEmpty();
+ }
+
+ @Test
public void update() {
dbTester.prepareDbUnit(getClass(), "shared.xml");