]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4987 Measures on metric "Weighted Issues" are always persisted even when those...
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 31 Jan 2014 17:29:42 +0000 (18:29 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 31 Jan 2014 17:29:54 +0000 (18:29 +0100)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/WeightedIssuesDecorator.java
plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/issue/WeightedIssuesDecoratorTest.java

index c7eb58db0ed4bc85f598a08c8767e092211b755a..b215689806d931ca921d187ce05f5038c88ab53f 100644 (file)
@@ -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<Metric> 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);
   }
 
index 5fb3f0f70cc6c0bae0a2661d60ac8a4fd1cbc186..200728d5d170bdcdddc61b942f3279d2c8a66d14 100644 (file)
@@ -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