aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2018-04-19 17:28:53 +0200
committerSonarTech <sonartech@sonarsource.com>2018-04-26 20:20:52 +0200
commitcd092a41d1eb70bf487a6345ae450d3e1cc6fa57 (patch)
tree24594e22ba4c311af2f5e72a55dd76f805db1f77 /sonar-scanner-engine
parent2552e0dcff500d999401cce943a87dcc766eb623 (diff)
downloadsonarqube-cd092a41d1eb70bf487a6345ae450d3e1cc6fa57.tar.gz
sonarqube-cd092a41d1eb70bf487a6345ae450d3e1cc6fa57.zip
Fix quality issues
Diffstat (limited to 'sonar-scanner-engine')
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java51
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/package-info.java24
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ModuleIssues.java5
3 files changed, 56 insertions, 24 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java
index b68fa4c910f..7f0d15a0420 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/ExternalIssueImporter.java
@@ -55,28 +55,8 @@ public class ExternalIssueImporter {
int issueCount = 0;
for (Issue issue : report.issues) {
- NewExternalIssue externalIssue = context.newExternalIssue()
- .forRule(RuleKey.of(issue.engineId, issue.ruleId))
- .severity(Severity.valueOf(issue.severity))
- .remediationEffortMinutes(20L)
- .type(RuleType.valueOf(issue.type));
-
- NewIssueLocation primary = fillLocation(context, externalIssue.newLocation(), issue.primaryLocation);
- if (primary != null) {
- knownFiles.add(issue.primaryLocation.filePath);
- externalIssue.at(primary);
- if (issue.secondaryLocations != null) {
- for (Location l : issue.secondaryLocations) {
- NewIssueLocation secondary = fillLocation(context, externalIssue.newLocation(), l);
- if (secondary != null) {
- externalIssue.addLocation(secondary);
- }
- }
- }
+ if (importIssue(issue)) {
issueCount++;
- externalIssue.save();
- } else {
- unknownFiles.add(issue.primaryLocation.filePath);
}
}
@@ -88,6 +68,33 @@ public class ExternalIssueImporter {
}
}
+ private boolean importIssue(Issue issue) {
+ NewExternalIssue externalIssue = context.newExternalIssue()
+ .forRule(RuleKey.of(issue.engineId, issue.ruleId))
+ .severity(Severity.valueOf(issue.severity))
+ .remediationEffortMinutes(20L)
+ .type(RuleType.valueOf(issue.type));
+
+ NewIssueLocation primary = fillLocation(context, externalIssue.newLocation(), issue.primaryLocation);
+ if (primary != null) {
+ knownFiles.add(issue.primaryLocation.filePath);
+ externalIssue.at(primary);
+ if (issue.secondaryLocations != null) {
+ for (Location l : issue.secondaryLocations) {
+ NewIssueLocation secondary = fillLocation(context, externalIssue.newLocation(), l);
+ if (secondary != null) {
+ externalIssue.addLocation(secondary);
+ }
+ }
+ }
+ externalIssue.save();
+ return true;
+ } else {
+ unknownFiles.add(issue.primaryLocation.filePath);
+ return false;
+ }
+ }
+
private static String pluralize(String msg, int count) {
if (count == 1) {
return msg;
@@ -118,7 +125,7 @@ public class ExternalIssueImporter {
}
@CheckForNull
- private InputFile findFile(SensorContext context, String filePath) {
+ private static InputFile findFile(SensorContext context, String filePath) {
return context.fileSystem().inputFile(context.fileSystem().predicates().hasPath(filePath));
}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/package-info.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/package-info.java
new file mode 100644
index 00000000000..e58ec069e25
--- /dev/null
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/externalissue/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+@ParametersAreNonnullByDefault
+package org.sonar.scanner.externalissue;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ModuleIssues.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ModuleIssues.java
index 1aeefadb7a6..d064b302f48 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ModuleIssues.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/ModuleIssues.java
@@ -112,10 +112,11 @@ public class ModuleIssues {
}
private static ScannerReport.ExternalIssue createReportExternalIssue(ExternalIssue issue, int componentRef) {
- String primaryMessage = Strings.isNullOrEmpty(issue.primaryLocation().message()) ? issue.ruleKey().toString() : issue.primaryLocation().message();
+ // primary location of an external issue must have a message
+ String primaryMessage = issue.primaryLocation().message();
Severity severity = Severity.valueOf(issue.severity().name());
IssueType issueType = IssueType.valueOf(issue.type().name());
-
+
ScannerReport.ExternalIssue.Builder builder = ScannerReport.ExternalIssue.newBuilder();
ScannerReport.IssueLocation.Builder locationBuilder = IssueLocation.newBuilder();
ScannerReport.TextRange.Builder textRangeBuilder = ScannerReport.TextRange.newBuilder();