From f80ea8db54d1cf78c6e72882ed1f3377c86920b3 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Thu, 18 Dec 2014 12:22:48 +0100 Subject: [PATCH] SONAR-5903 Fix lost of rule tags and NPE --- .../org/sonar/plugins/core/issue/IssueTrackingDecorator.java | 1 + .../src/test/java/org/sonar/batch/issue/IssueCacheTest.java | 4 +++- .../main/java/org/sonar/api/issue/internal/DefaultIssue.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueTrackingDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueTrackingDecorator.java index a465c1b860c..3d2bfc48e9d 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueTrackingDecorator.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueTrackingDecorator.java @@ -177,6 +177,7 @@ public class IssueTrackingDecorator implements Decorator { issue.setStatus(ref.getStatus()); issue.setAssignee(ref.getAssignee()); issue.setAuthorLogin(ref.getAuthorLogin()); + issue.setTags(ref.getTags()); if (ref.getIssueAttributes() != null) { issue.setAttributes(KeyValueFormat.parse(ref.getIssueAttributes())); diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java index 8cdf7fcc0ed..d1cb4dd4844 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/issue/IssueCacheTest.java @@ -35,6 +35,7 @@ import org.sonar.batch.index.CachesTest; import javax.annotation.Nullable; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -63,11 +64,12 @@ public class IssueCacheTest { IssueCache cache = new IssueCache(caches); DefaultIssue issue1 = new DefaultIssue().setKey("111").setComponentKey("org.struts.Action"); DefaultIssue issue2 = new DefaultIssue().setKey("222").setComponentKey("org.struts.Action"); - DefaultIssue issue3 = new DefaultIssue().setKey("333").setComponentKey("org.struts.Filter"); + DefaultIssue issue3 = new DefaultIssue().setKey("333").setComponentKey("org.struts.Filter").setTags(Arrays.asList("foo", "bar")); cache.put(issue1).put(issue2).put(issue3); assertThat(issueKeys(cache.byComponent("org.struts.Action"))).containsOnly("111", "222"); assertThat(issueKeys(cache.byComponent("org.struts.Filter"))).containsOnly("333"); + assertThat(cache.byComponent("org.struts.Filter").iterator().next().tags()).containsOnly("foo", "bar"); } @Test diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java index 02005504b80..e318234f0e0 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/internal/DefaultIssue.java @@ -44,6 +44,7 @@ import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Date; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -599,7 +600,7 @@ public class DefaultIssue implements Issue { } public DefaultIssue setTags(Collection tags) { - this.tags = ImmutableSet.copyOf(tags); + this.tags = new LinkedHashSet(tags); return this; } } -- 2.39.5