diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2018-04-19 17:28:53 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-04-26 20:20:52 +0200 |
commit | cd092a41d1eb70bf487a6345ae450d3e1cc6fa57 (patch) | |
tree | 24594e22ba4c311af2f5e72a55dd76f805db1f77 /sonar-scanner-engine | |
parent | 2552e0dcff500d999401cce943a87dcc766eb623 (diff) | |
download | sonarqube-cd092a41d1eb70bf487a6345ae450d3e1cc6fa57.tar.gz sonarqube-cd092a41d1eb70bf487a6345ae450d3e1cc6fa57.zip |
Fix quality issues
Diffstat (limited to 'sonar-scanner-engine')
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(); |