aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin/src/main/java
diff options
context:
space:
mode:
authorElena Vilchik2018-06-26 15:11:24 +0200
committerGitHub2018-06-26 15:11:24 +0200
commit4fc865cac084522cd37000a5abbf95acf00f7977 (patch)
treeb62a11ff188169a0b4fd06e1b486dd4f82692452 /sonar-css-plugin/src/main/java
parenta7cbea9bfccfaaeca25498d4cde75dff7ddb7b76 (diff)
downloadsonar-css-4fc865cac084522cd37000a5abbf95acf00f7977.tar.bz2
Not fail analysis when syntax error (#80)
Diffstat (limited to 'sonar-css-plugin/src/main/java')
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java45
1 files changed, 28 insertions, 17 deletions
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
index da781aa..ce98ede 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/CssRuleSensor.java
@@ -93,7 +93,7 @@ public class CssRuleSensor implements Sensor {
try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8)) {
IssuesPerFile[] issues = new Gson().fromJson(inputStreamReader, IssuesPerFile[].class);
- saveIssues(context, cssRules, issues);
+ saveIssues(context, issues);
}
} catch (IOException e) {
@@ -155,7 +155,7 @@ public class CssRuleSensor implements Sensor {
}
}
- private static void saveIssues(SensorContext context, CssRules cssRules, IssuesPerFile[] issues) {
+ private void saveIssues(SensorContext context, IssuesPerFile[] issues) {
FileSystem fileSystem = context.fileSystem();
for (IssuesPerFile issuesPerFile : issues) {
@@ -163,24 +163,35 @@ public class CssRuleSensor implements Sensor {
if (inputFile != null) {
for (Issue issue : issuesPerFile.warnings) {
- NewIssue sonarIssue = context.newIssue();
-
- NewIssueLocation location = sonarIssue.newLocation()
- .on(inputFile)
- .at(inputFile.selectLine(issue.line))
- .message(normalizeMessage(issue.text));
-
- RuleKey ruleKey = cssRules.getActiveSonarKey(issue.rule);
- if (ruleKey == null) {
- throw new IllegalStateException("Unknown stylelint rule or rule not enabled " + issue.rule);
- }
- sonarIssue
- .at(location)
- .forRule(ruleKey)
- .save();
+ saveIssue(context, inputFile, issue);
}
}
}
}
+ private void saveIssue(SensorContext context, InputFile inputFile, Issue issue) {
+ NewIssue sonarIssue = context.newIssue();
+
+ RuleKey ruleKey = cssRules.getActiveSonarKey(issue.rule);
+
+ if (ruleKey == null) {
+ if ("CssSyntaxError".equals(issue.rule)) {
+ LOG.error("Failed to parse " + inputFile.uri());
+ } else {
+ LOG.error("Unknown stylelint rule or rule not enabled: '" + issue.rule + "'");
+ }
+
+ } else {
+ NewIssueLocation location = sonarIssue.newLocation()
+ .on(inputFile)
+ .at(inputFile.selectLine(issue.line))
+ .message(normalizeMessage(issue.text));
+
+ sonarIssue
+ .at(location)
+ .forRule(ruleKey)
+ .save();
+ }
+ }
+
}