From 69e1c14cd206f33d50c74d3be8d0a6046328bf36 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Fri, 31 Jul 2015 13:24:22 +0200 Subject: [PATCH] Fix local issue tracking when there are issues on modules/folders --- .../sonar/batch/issue/tracking/IssueTracking.java | 4 ++-- .../preview/PreviewAndReportsMediumTest.java | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/IssueTracking.java b/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/IssueTracking.java index b5a2dbd872b..5ed488efedb 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/IssueTracking.java +++ b/sonar-batch/src/main/java/org/sonar/batch/issue/tracking/IssueTracking.java @@ -58,8 +58,8 @@ public class IssueTracking { } private String checksum(BatchReport.Issue rawIssue) { - FileHashes hashedSource = sourceHashHolder.getHashedSource(); - if (rawIssue.hasLine()) { + if (sourceHashHolder != null && rawIssue.hasLine()) { + FileHashes hashedSource = sourceHashHolder.getHashedSource(); // Extra verification if some plugin managed to create issue on a wrong line Preconditions.checkState(rawIssue.getLine() <= hashedSource.length(), "Invalid line number for issue %s. File has only %s line(s)", rawIssue, hashedSource.length()); return hashedSource.getHash(rawIssue.getLine()); diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/PreviewAndReportsMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/PreviewAndReportsMediumTest.java index 8c05646a740..a966d85e3c4 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/PreviewAndReportsMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/PreviewAndReportsMediumTest.java @@ -74,6 +74,8 @@ public class PreviewAndReportsMediumTest { .addRule("manual:MyManualIssue", "manual", "MyManualIssue", "My manual issue") .addRule("manual:MyManualIssueDup", "manual", "MyManualIssue", "My manual issue") .activateRule(new ActiveRule("xoo", "OneIssuePerLine", null, "One issue per line", "MAJOR", null, "xoo")) + .activateRule(new ActiveRule("xoo", "OneIssueOnDirPerFile", null, "OneIssueOnDirPerFile", "MAJOR", null, "xoo")) + .activateRule(new ActiveRule("xoo", "OneIssuePerModule", null, "OneIssuePerModule", "MAJOR", null, "xoo")) .activateRule(new ActiveRule("manual", "MyManualIssue", null, "My manual issue", "MAJOR", null, null)) .setPreviousAnalysisDate(new Date()) // Existing issue that is still detected @@ -160,7 +162,7 @@ public class PreviewAndReportsMediumTest { openIssues++; } } - assertThat(newIssues).isEqualTo(13); + assertThat(newIssues).isEqualTo(16); assertThat(openIssues).isEqualTo(2); assertThat(resolvedIssue).isEqualTo(2); } @@ -174,7 +176,7 @@ public class PreviewAndReportsMediumTest { .property("sonar.issuesReport.console.enable", "true") .start(); - assertThat(getReportLog()).contains("+13 issues", "+13 major"); + assertThat(getReportLog()).contains("+16 issues", "+16 major"); } @Test @@ -186,7 +188,7 @@ public class PreviewAndReportsMediumTest { .property("sonar.xoo.enablePostJob", "true") .start(); - assertThat(logTester.logs()).contains("Resolved issues: 2", "Open issues: 15"); + assertThat(logTester.logs()).contains("Resolved issues: 2", "Open issues: 18"); } private String getReportLog() { @@ -246,8 +248,8 @@ public class PreviewAndReportsMediumTest { .setIssueListener(issueListener) .start(); - assertThat(result.trackedIssues()).hasSize(17); - assertThat(issueListener.issueList).hasSize(17); + assertThat(result.trackedIssues()).hasSize(20); + assertThat(issueListener.issueList).hasSize(20); assertThat(result.trackedIssues()).containsExactlyElementsOf(issueListener.issueList); } -- 2.39.5