From: Julien HENRY Date: Mon, 7 Oct 2013 13:02:16 +0000 (+0200) Subject: SONAR-2657 Don't save file hashes if there is no file in project X-Git-Tag: 4.0~221 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1fcbb5e85e979eea35bafed165a3e89d1058bdd8;p=sonarqube.git SONAR-2657 Don't save file hashes if there is no file in project like in a multimodule root --- 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. emptyList()); + sensor.analyse(project, mock(SensorContext.class)); + + verify(componentDataCache, never()).setStringData(anyString(), anyString(), anyString()); + } }