From 55bca4e01bc28e161d964c0dd6bcb3da079c8d07 Mon Sep 17 00:00:00 2001 From: Janos Gyerik Date: Thu, 21 Jun 2018 22:24:54 +0200 Subject: [PATCH] SONAR-10874 Skip notification when assigning user to new hotspot --- .../task/projectanalysis/step/SendIssueNotificationsStep.java | 3 ++- .../projectanalysis/step/SendIssueNotificationsStepTest.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java index 2344309af6a..ccb59f0d386 100644 --- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java +++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStep.java @@ -32,6 +32,7 @@ import java.util.Set; import java.util.function.Predicate; import javax.annotation.CheckForNull; import org.sonar.api.issue.Issue; +import org.sonar.api.rules.RuleType; import org.sonar.api.utils.Duration; import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder; import org.sonar.ce.task.projectanalysis.analysis.Branch; @@ -134,7 +135,7 @@ public class SendIssueNotificationsStep implements ComputationStep { private void processIssues(NewIssuesStatistics newIssuesStats, CloseableIterator issues, Component project, Map usersDtoByUuids) { while (issues.hasNext()) { DefaultIssue issue = issues.next(); - if (issue.isNew() && issue.resolution() == null) { + if (issue.isNew() && issue.resolution() == null && issue.type() != RuleType.SECURITY_HOTSPOT) { newIssuesStats.add(issue); } else if (issue.isChanged() && issue.mustSendNotifications()) { sendIssueChangeNotification(issue, project, usersDtoByUuids); diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java index 0acf8a25e97..2229f229ee3 100644 --- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java +++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/SendIssueNotificationsStepTest.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Random; import java.util.stream.IntStream; +import java.util.stream.Stream; import org.apache.commons.lang.RandomStringUtils; import org.junit.Before; import org.junit.Rule; @@ -112,7 +113,8 @@ public class SendIssueNotificationsStepTest extends BaseStepTest { public DbTester db = DbTester.create(System2.INSTANCE); private final Random random = new Random(); - private final RuleType randomRuleType = RuleType.values()[random.nextInt(RuleType.values().length)]; + private final RuleType[] RULE_TYPES_EXCEPT_HOTSPOTS = Stream.of(RuleType.values()).filter(r -> r != RuleType.SECURITY_HOTSPOT).toArray(RuleType[]::new); + private final RuleType randomRuleType = RULE_TYPES_EXCEPT_HOTSPOTS[random.nextInt(RULE_TYPES_EXCEPT_HOTSPOTS.length)]; private NotificationService notificationService = mock(NotificationService.class); private NewIssuesNotificationFactory newIssuesNotificationFactory = mock(NewIssuesNotificationFactory.class); private NewIssuesNotification newIssuesNotificationMock = createNewIssuesNotificationMock(); -- 2.39.5