]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4304 fix closing of manual issues
authorSimon Brandhof <simon.brandhof@gmail.com>
Tue, 28 May 2013 14:35:18 +0000 (16:35 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Tue, 28 May 2013 14:35:27 +0000 (16:35 +0200)
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueTrackingDecorator.java

index 869e1f8a458a6329d4e0402d6eb8a5918b588c80..6bfa194f96865aa5ee8571e32a3e019fc1b0aa00 100644 (file)
@@ -165,20 +165,21 @@ public class IssueTrackingDecorator implements Decorator {
   private void addUnmatched(Collection<IssueDto> unmatchedIssues, Collection<DefaultIssue> issues) {
     for (IssueDto unmatchedDto : unmatchedIssues) {
       DefaultIssue unmatched = unmatchedDto.toDefaultIssue();
-      boolean manualIssue = !Strings.isNullOrEmpty(unmatched.reporter());
-      Rule rule = ruleFinder.findByKey(RuleKey.of(unmatchedDto.getRuleRepo(), unmatchedDto.getRule()));
+      unmatched.setNew(false);
 
-      boolean onDisabledRule = (rule == null || Rule.STATUS_REMOVED.equals(rule.getStatus()));
+      boolean manualIssue = !Strings.isNullOrEmpty(unmatched.reporter());
+      Rule rule = ruleFinder.findByKey(unmatched.ruleKey());
       if (manualIssue) {
         // Manual rules are not declared in Quality profiles, so no need to check ActiveRule
+        boolean onDisabledRule = (rule == null || Rule.STATUS_REMOVED.equals(rule.getStatus()));
         unmatched.setEndOfLife(onDisabledRule);
+        unmatched.setOnDisabledRule(onDisabledRule);
       } else {
-        ActiveRule activeRule = rulesProfile.getActiveRule(unmatchedDto.getRuleRepo(), unmatchedDto.getRule());
-        onDisabledRule &= (activeRule == null);
+        ActiveRule activeRule = rulesProfile.getActiveRule(unmatched.ruleKey().repository(), unmatched.ruleKey().rule());
         unmatched.setEndOfLife(true);
+        unmatched.setOnDisabledRule(activeRule == null || rule == null || Rule.STATUS_REMOVED.equals(rule.getStatus()));
       }
-      unmatched.setNew(false);
-      unmatched.setOnDisabledRule(onDisabledRule);
+
       issues.add(unmatched);
     }
   }