aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2014-04-11 17:52:17 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2014-04-11 17:52:17 +0200
commit53fc70e961eceebd1524e4a8df96e3321b80b9ee (patch)
tree3d7f7167313d7e3b7b009887eab28e731273352b /sonar-batch/src
parentd251cdd677a72845a4c3beaf8ee9eefd1e8ca47f (diff)
downloadsonarqube-53fc70e961eceebd1524e4a8df96e3321b80b9ee.tar.gz
sonarqube-53fc70e961eceebd1524e4a8df96e3321b80b9ee.zip
SONAR-5212 Fix tests metric in multi-language projects
Diffstat (limited to 'sonar-batch/src')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/index/Bucket.java4
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java5
2 files changed, 9 insertions, 0 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/Bucket.java b/sonar-batch/src/main/java/org/sonar/batch/index/Bucket.java
index 551c25327f3..af6a87ae8a6 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/index/Bucket.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/index/Bucket.java
@@ -22,6 +22,7 @@ package org.sonar.batch.index;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
+import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Measure;
import org.sonar.api.measures.MeasuresFilter;
import org.sonar.api.measures.MeasuresFilters;
@@ -87,6 +88,9 @@ public final class Bucket {
if (index > -1) {
if (metricMeasures.get(index) == measure) {
add = false;
+ } else if (measure.getMetric().equals(CoreMetrics.TESTS)) {
+ // Hack for SONAR-5212
+ measuresByMetric.remove(measure.getMetric().getKey(), metricMeasures.get(index));
} else {
throw new SonarException("Can not add twice the same measure on " + resource + ": " + measure);
}
diff --git a/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java b/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java
index 564ee82ec72..8e61a931bd0 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.database.model.MeasureMapper;
import org.sonar.api.database.model.MeasureModel;
import org.sonar.api.database.model.Snapshot;
+import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Measure;
import org.sonar.api.measures.RuleMeasure;
import org.sonar.api.resources.Resource;
@@ -73,6 +74,10 @@ public final class MeasurePersister {
public void saveMeasure(Resource resource, Measure measure) {
if (shouldSaveLater(measure)) {
+ if (measure.getMetric().equals(CoreMetrics.TESTS) && unsavedMeasuresByResource.get(resource).contains(measure)) {
+ // Hack for SONAR-5212
+ unsavedMeasuresByResource.remove(resource, measure);
+ }
unsavedMeasuresByResource.put(resource, measure);
return;
}