diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2013-10-07 15:02:16 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2013-10-07 15:03:40 +0200 |
commit | 1fcbb5e85e979eea35bafed165a3e89d1058bdd8 (patch) | |
tree | f85a43f067286516031e40c071b1ae1e58e168cd | |
parent | eb61eba8a4e2dead826feca34b22ca8fc5fa0ffb (diff) | |
download | sonarqube-1fcbb5e85e979eea35bafed165a3e89d1058bdd8.tar.gz sonarqube-1fcbb5e85e979eea35bafed165a3e89d1058bdd8.zip |
SONAR-2657 Don't save file hashes if there is no file in project
like in a multimodule root
2 files changed, 17 insertions, 1 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/FileHashSensor.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/FileHashSensor.java index 09f8215f053..df5cd76ade5 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/FileHashSensor.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/FileHashSensor.java @@ -19,6 +19,7 @@ */ package org.sonar.plugins.core.sensors; +import org.apache.commons.lang.StringUtils; import org.sonar.api.batch.Sensor; import org.sonar.api.batch.SensorContext; import org.sonar.api.resources.Project; @@ -63,7 +64,10 @@ public final class FileHashSensor implements Sensor { StringBuilder fileHashMap = new StringBuilder(); analyse(fileHashMap, project, FileType.SOURCE); analyse(fileHashMap, project, FileType.TEST); - componentDataCache.setStringData(project.getKey(), SnapshotDataType.FILE_HASH.getValue(), fileHashMap.toString()); + String fileHashes = fileHashMap.toString(); + if (StringUtils.isNotBlank(fileHashes)) { + componentDataCache.setStringData(project.getKey(), SnapshotDataType.FILE_HASH.getValue(), fileHashes); + } } private void analyse(StringBuilder fileHashMap, Project project, FileType fileType) { diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/FileHashSensorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/FileHashSensorTest.java index f57dae2e809..b46519c27d3 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/FileHashSensorTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/FileHashSensorTest.java @@ -42,7 +42,9 @@ import java.util.Collections; import static org.fest.assertions.Assertions.assertThat; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -99,4 +101,14 @@ public class FileHashSensorTest { "src/com/foo/Bar.java=barhash\n" + "src/com/foo/Foo.java=foohash\n"); } + + @Test + public void dont_save_hashes_if_no_file() throws Exception { + File baseDir = temp.newFolder(); + when(fileSystem.baseDir()).thenReturn(baseDir); + when(fileSystem.files(any(FileQuery.class))).thenReturn(Collections.<File> emptyList()); + sensor.analyse(project, mock(SensorContext.class)); + + verify(componentDataCache, never()).setStringData(anyString(), anyString(), anyString()); + } } |