SonarJs analysis broken by a simple program

698 views
Skip to first unread message

yj0...@gmail.com

unread,
Apr 19, 2017, 11:13:26 AM4/19/17
to SonarQube
In a very simple JavaScript:

function test() {
    var a, b;
    if (a > b) {
        if (a != b) {
        }
    }
}

When SonarJs 2.20.0.4207 analysis, will be broken with messages (I guess this is a bug?):

INFO: Sensor JavaScript Squid Sensor
INFO: 1 source files to be analyzed
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 17.167s
INFO: Final Memory: 50M/103M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
org.sonar.squidbridge.api.AnalysisException: Unable to analyse file: C:/JenkinsNode/workspace/PrimitivesLatestJs/test.js
	at org.sonar.plugins.javascript.JavaScriptSquidSensor.analyse(JavaScriptSquidSensor.java:174)
	at org.sonar.plugins.javascript.JavaScriptSquidSensor.analyseFiles(JavaScriptSquidSensor.java:133)
	at org.sonar.plugins.javascript.JavaScriptSquidSensor.execute(JavaScriptSquidSensor.java:349)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:247)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:242)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:232)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.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.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:115)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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.IllegalStateException: At least one branch of condition should be executed (condition on line 4).
	at org.sonar.javascript.se.SymbolicExecution.pushConditionSuccessors(SymbolicExecution.java:427)
	at org.sonar.javascript.se.SymbolicExecution.handleSuccessors(SymbolicExecution.java:381)
	at org.sonar.javascript.se.SymbolicExecution.execute(SymbolicExecution.java:269)
	at org.sonar.javascript.se.SymbolicExecution.visitCfg(SymbolicExecution.java:112)
	at org.sonar.javascript.se.SeChecksDispatcher.visitNode(SeChecksDispatcher.java:72)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:75)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:95)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:77)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:95)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:77)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:69)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:63)
	at org.sonar.plugins.javascript.api.visitors.SubscriptionVisitorCheck.scanFile(SubscriptionVisitorCheck.java:36)
	at org.sonar.javascript.se.SeChecksDispatcher.scanFile(SeChecksDispatcher.java:93)
	at org.sonar.plugins.javascript.JavaScriptSquidSensor.scanFile(JavaScriptSquidSensor.java:232)
	at org.sonar.plugins.javascript.JavaScriptSquidSensor.analyse(JavaScriptSquidSensor.java:163)
	... 32 more
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
ERROR: SonarQube scanner exited with non-zero code: 1
Finished: FAILURE

Elena Vilchik

unread,
Apr 20, 2017, 9:57:04 AM4/20/17
to SonarQube
Hello David,

Thanks for your finding. Indeed SonarJS fails with such code. I explained the problem in the ticket SONARJS-999.
Moreover there is a ticket SONARJS-970 which should prevent project analysis from failing by skipping the file causing the problem.

Elena VILCHIK | SonarSource
Language Team

David Chou

unread,
May 3, 2017, 9:04:41 AM5/3/17
to SonarQube
After upgrade to SonarJS 3.0, SONARJS-970 resolved, thank you.

Elena Vilchik

unread,
May 3, 2017, 9:12:14 AM5/3/17
to David Chou, SonarQube
David, thanks for validation!

On Wed, 3 May 2017 at 15:04 David Chou <yj0...@gmail.com> wrote:
After upgrade to SonarJS 3.0, SONARJS-970 resolved, thank you.

--
You received this message because you are subscribed to a topic in the Google Groups "SonarQube" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonarqube/sQo8J2J6GjY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonarqube+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarqube/4a74521b-a3a9-4fe8-9c31-0bc00ff140e9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--

Elena Vilchik | 
SonarSource
Language Team
Reply all
Reply to author
Forward
0 new messages