From: Julien Lancelot Date: Fri, 31 Jan 2014 17:29:42 +0000 (+0100) Subject: SONAR-4987 Measures on metric "Weighted Issues" are always persisted even when those... X-Git-Tag: 4.2~325 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=13544449c9994a5c00aa7476b75c40e9a9de8ec8;p=sonarqube.git SONAR-4987 Measures on metric "Weighted Issues" are always persisted even when those values are '0' --- diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/WeightedIssuesDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/WeightedIssuesDecorator.java index c7eb58db0ed..b215689806d 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/WeightedIssuesDecorator.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/WeightedIssuesDecorator.java @@ -19,6 +19,7 @@ */ package org.sonar.plugins.core.issue; +import com.google.common.base.Strings; import com.google.common.collect.Multiset; import com.google.common.collect.TreeMultiset; import org.sonar.api.CoreProperties; @@ -43,14 +44,14 @@ import java.util.List; import java.util.Map; @Properties( - @Property( - key = CoreProperties.CORE_RULE_WEIGHTS_PROPERTY, - defaultValue = CoreProperties.CORE_RULE_WEIGHTS_DEFAULT_VALUE, - name = "Rules weight", - description = "A weight is associated to each severity to calculate the Rules Compliance Index.", - project = false, - global = true, - category = CoreProperties.CATEGORY_GENERAL) + @Property( + key = CoreProperties.CORE_RULE_WEIGHTS_PROPERTY, + defaultValue = CoreProperties.CORE_RULE_WEIGHTS_DEFAULT_VALUE, + name = "Rules weight", + description = "A weight is associated to each severity to calculate the Rules Compliance Index.", + project = false, + global = true, + category = CoreProperties.CATEGORY_GENERAL) ) public class WeightedIssuesDecorator implements Decorator { @@ -64,7 +65,7 @@ public class WeightedIssuesDecorator implements Decorator { @DependsUpon public List dependsUponIssues() { return Arrays.asList(CoreMetrics.BLOCKER_VIOLATIONS, CoreMetrics.CRITICAL_VIOLATIONS, - CoreMetrics.MAJOR_VIOLATIONS, CoreMetrics.MINOR_VIOLATIONS, CoreMetrics.INFO_VIOLATIONS); + CoreMetrics.MAJOR_VIOLATIONS, CoreMetrics.MINOR_VIOLATIONS, CoreMetrics.INFO_VIOLATIONS); } @DependedUpon @@ -115,7 +116,9 @@ public class WeightedIssuesDecorator implements Decorator { } } - Measure debtMeasure = new Measure(CoreMetrics.WEIGHTED_VIOLATIONS, debt, KeyValueFormat.format(distribution)); + String distributionFormatted = KeyValueFormat.format(distribution); + // SONAR-4987 We should store store an empty string for the distribution value + Measure debtMeasure = new Measure(CoreMetrics.WEIGHTED_VIOLATIONS, debt, Strings.emptyToNull(distributionFormatted)); context.saveMeasure(debtMeasure); } diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/issue/WeightedIssuesDecoratorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/issue/WeightedIssuesDecoratorTest.java index 5fb3f0f70cc..200728d5d17 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/issue/WeightedIssuesDecoratorTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/issue/WeightedIssuesDecoratorTest.java @@ -65,6 +65,8 @@ public class WeightedIssuesDecoratorTest { decorator.decorate(context); verify(context).saveMeasure(any(Measure.class)); + // SONAR-4987 + verify(context, never()).saveMeasure(argThat(new IsMeasure(CoreMetrics.WEIGHTED_VIOLATIONS, ""))); } @Test