Error during SonarQube Scanner execution, java.lang.NoSuchMethodError, StylelintReportSensor

Versions

  • SonarQube Scanner 3.3.0.1492
  • Java 1.8.0_212 IcedTea (64-bit)
  • Linux 4.19.68-coreos amd64
  • SonarQube server 7.2.1
Plugins
  • Dependency-Check 1.1.5 (dependencycheck)
  • SonarPython 1.14.0.3086 (python)
  • Code Smells 4.0.0 (smells)
  • SonarCSS 1.1.0.993 (cssfamily)
  • PMD 3.2.0 (pmd)
  • SonarGo 1.1.1.2000 (go)
  • Bitbucket for Sonar 1.3.0 (sonarbitbucket)
  • ShellCheck Analyzer 2.1.0 (shellcheck)
  • Svn 1.8.0.1168 (scmsvn)
  • SonarJS 5.1.1.7506 (javascript)
  • Java Properties 2.6 (javaProperties)
  • Findbugs 3.9.4 (findbugs)
  • SonarC# 7.3.0.5690 (csharp)
  • Groovy 1.5 (groovy)
  • SonarJava 5.6.0.15032 (java)
  • SonarHTML 3.0.1.1444 (web)
  • Git 1.8.0.1574 (scmgit)
  • SonarFlex 2.4.0.1222 (flex)
  • SonarXML 2.0.1.2020 (xml)
  • SonarPHP 3.0.0.4537 (php)
  • SonarTS 1.9.0.3766 (typescript)
  • Checkstyle 4.21 (checkstyle)

Error

05:13:28.386 DEBUG: Sensors : SonarCSS Metrics -> SonarCSS Rules -> Import of stylelint issues -> SonarJS -> ESLint-based SonarJS -> SonarJavaXmlFileSensor -> HTML
05:13:28.386 INFO: Sensor SonarCSS Metrics [cssfamily]
05:13:28.906 INFO: Sensor SonarCSS Metrics [cssfamily] (done) | time=520ms
05:13:28.906 INFO: Sensor SonarCSS Rules [cssfamily]
05:13:28.907 DEBUG: Deploying bundle to /opt/atlassian/pipelines/agent/build/.scannerwork/ui-PESV3-14701-tmp_UI
05:13:29.402 DEBUG: Using default Node.js executable: 'node'.
05:13:29.402 DEBUG: Checking Node.js version
05:13:29.402 DEBUG: Launching command [node, -v]
05:13:29.410 DEBUG: Using Node.js v10.14.2.
05:13:29.410 DEBUG: Starting process: node /opt/atlassian/pipelines/agent/build/.scannerwork/ui-PESV3-14701-tmp_UI/css-bundle/node_modules/stylelint/bin/stylelint /opt/atlassian/pipelines/agent/build/UI/**/*{.css,.less,.scss,.html,.xhtml,.jspf,.jspx,.cshtml,.vbhtml,.aspx,.ascx,.rhtml,.erb,.shtm,.shtml,php,php3,php4,php5,phtml,inc,.js,.jsx,.vue,.ts,.tsx} --config /opt/atlassian/pipelines/agent/build/.scannerwork/ui-PESV3-14701-tmp_UI/css-bundle/stylelintconfig.json -f json
05:13:29.410 DEBUG: Launching command [node, /opt/atlassian/pipelines/agent/build/.scannerwork/ui-PESV3-14701-tmp_UI/css-bundle/node_modules/stylelint/bin/stylelint, /opt/atlassian/pipelines/agent/build/UI/**/*{.css,.less,.scss,.html,.xhtml,.jspf,.jspx,.cshtml,.vbhtml,.aspx,.ascx,.rhtml,.erb,.shtm,.shtml,php,php3,php4,php5,phtml,inc,.js,.jsx,.vue,.ts,.tsx}, --config, /opt/atlassian/pipelines/agent/build/.scannerwork/ui-PESV3-14701-tmp_UI/css-bundle/stylelintconfig.json, -f, json]
05:13:30.269 ERROR: Analysis didn't terminate normally, please verify ERROR and WARN logs above. Exit code 1
05:13:30.269 INFO: Sensor SonarCSS Rules [cssfamily] (done) | time=1363ms
05:13:30.269 INFO: Sensor Import of stylelint issues [cssfamily]
05:13:30.270 INFO: Importing /opt/atlassian/pipelines/agent/build/UI/lint-reports/stylelint.json
05:13:30.329 INFO: ------------------------------------------------------------------------
05:13:30.329 INFO: EXECUTION FAILURE
05:13:30.329 INFO: ------------------------------------------------------------------------
05:13:30.329 INFO: Total time: 20.368s
05:13:30.435 INFO: Final Memory: 19M/303M
05:13:30.435 INFO: ------------------------------------------------------------------------
05:13:30.435 ERROR: Error during SonarQube Scanner execution
java.lang.NoSuchMethodError: org.sonar.api.batch.sensor.issue.NewExternalIssue.engineId(Ljava/lang/String;)Lorg/sonar/api/batch/sensor/issue/NewExternalIssue;
	at org.sonar.css.plugin.StylelintReportSensor.saveStylelintIssue(StylelintReportSensor.java:135)
	at org.sonar.css.plugin.StylelintReportSensor.importReport(StylelintReportSensor.java:94)
	at org.sonar.css.plugin.StylelintReportSensor.lambda$execute$1(StylelintReportSensor.java:77)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at org.sonar.css.plugin.StylelintReportSensor.execute(StylelintReportSensor.java:77)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:312)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:307)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:305)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:281)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:81)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:132)
	at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:71)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	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:185)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:111)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)

Steps to reproduce

  1. Create an npm script that creates Stylelint report:
"stylelint:report" : "stylelint src/less/**/*.less --output-file lint-reports/stylelint.json --formatter json || echo 'Generating Stylelint report'"

|| echo 'Generating Stylelint report' negates non zero exit code

  1. Run the script during/after the build and add lint-reports/stylelint.json

  2. Specify sonar.css.stylelint.reportPaths=lint-reports/stylelint.json assuming lint-reports is in the root folder

Potential workaround

None, the error fails pipeline

Scanner command used

sonar-scanner -X -Dproject.settings=***  -Dsonar.bitbucket.repoSlug=*** -Dsonar.bitbucket.accountName=*** -Dsonar.bitbucket.teamName=*** -Dsonar.bitbucket.apiKey=*** -Dsonar.bitbucket.branchName=*** -Dsonar.bitbucket.pullRequestId=*** -Dsonar.analysis.mode=issues

ALM used

Bitbucket Cloud

CI system used

Bitbucket Cloud

Hi,

It’s compatibility problem on our side, external issues API was introduced in SQ 7.2 (so report import is executed for you), but engine Id was added in SQ 7.4.
As SQ 7.2 is not supported, I suggest you to upgrade to SQ LTS version 7.9 or latest 8.0.
Another workaround is to downgrade CSS analyzer or not using external issues import.

Sorry for the inconvenience!

1 Like