sasssonarqubesonarqube-scansonarqube5.6

Failed analysis for SCSS file?


I'm getting an error when analyzing my project using the generic SonarQube Scanner. According to the documentation this combination of scanner and server is compatible.

Versions:

What could be wrong?

I have this code (typography.scss):

$rem-base: 16;

@function rem($px, $base: $rem-base) {
   @return ($px / $base) * 1rem;
}

@function em($px, $base: $rem-base) {
  @return ($px / $base) * 1em;
}

@mixin font-size($px, $base: $rem-base) {
  font-size: $px + px;
  font-size: rem($px);
}

This is the result of the analysis. Note that a few scss files seem to have passed analysis:

07:57:03.786 DEBUG: Analyzing /data/source/assets/css/_base/colors.scss...
07:57:05.036 DEBUG: Analyzing /data/source/assets/css/_base/responsive.scss...
07:57:05.074 DEBUG: Analyzing /data/source/assets/css/_base/typography.scss...
07:57:05.138 INFO: ------------------------------------------------------------------------
07:57:05.138 INFO: EXECUTION FAILURE
07:57:05.138 INFO: ------------------------------------------------------------------------
07:57:05.141 INFO: Total time: 7:57.658s
07:57:05.376 INFO: Final Memory: 50M/127M
07:57:05.377 INFO: ------------------------------------------------------------------------
07:57:05.377 ERROR: Error during SonarQube Scanner execution
org.sonar.squidbridge.api.AnalysisException: Unable to analyze file: /data/source/assets/css/_base/typography.scss
at org.sonar.plugins.css.AbstractLanguageAnalyzerSensor.analyzeFile(AbstractLanguageAnalyzerSensor.java:148)
at org.sonar.plugins.css.AbstractLanguageAnalyzerSensor.execute(AbstractLanguageAnalyzerSensor.java:111)
at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57)
at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83)
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)
at org.sonarsource.scanner.cli.Main.execute(Main.java:74)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.NullPointerException
at org.sonar.css.checks.common.BewareOfBoxModelCheck.visitNode(BewareOfBoxModelCheck.java:82)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:76)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:96)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:78)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:96)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:78)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:96)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:78)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:70)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:64)
at org.sonar.plugins.css.api.visitors.SubscriptionVisitorCheck.scanFile(SubscriptionVisitorCheck.java:40)
at org.sonar.plugins.css.AbstractLanguageAnalyzerSensor.scanFile(AbstractLanguageAnalyzerSensor.java:161)
at org.sonar.plugins.css.AbstractLanguageAnalyzerSensor.analyzeFile(AbstractLanguageAnalyzerSensor.java:138)
... 31 more

Solution

  • A NPE is raised on this file for rule box-model - Box model size should be carefully reviewed. Issue opened on GitHub: https://github.com/racodond/sonar-css-plugin/issues/115. A snapshot to test the fix is available at https://github.com/racodond/sonar-css-plugin/releases/tag/115

    Until the bug fix is released, you can deactivate this rule and your analysis should continue.