Scanning Python code in VSCode with SonarLint in connected mode does not work

Please provide

  • Operating system: Windows 10 21H2 build 19044.3448
  • Visual Studio Code version: 1.82.3
  • SonarLint plugin version: v3.21.0
  • Programming language you’re coding in: Python
  • Is connected mode used:
    • Connected to SonarCloud or SonarQube (and which version): connected to SonarQube v10.1

And a thorough description of the problem / question:
I am developing Python code in VSCode and I have installed extension “Sonarlint”. In Connected mode, I have configured a binding to my source code root level. I do not get any SonarLint warnings on my code although there are definitely rules enabled. When I check “SonarLint: Show SonarLint Output”: I get the following log:

vscode-3.21.0-win32-x64\jre\17.0.8-win32-x86_64.tar\bin\java -jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\server\sonarlint-ls.jar -stdio -analyzers c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonargo.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarjava.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarjs.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarphp.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarpython.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarhtml.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarxml.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonarcfamily.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonartext.jar c:\Users\N.calis\.vscode\extensions\sonarsource.sonarlint-vscode-3.21.0-win32-x64\analyzers\sonariac.jar
[Info  - 13:13:54.531] Started embedded server on port 64120
[Info  - 13:14:01.066] Downloaded plugin list in 33ms
[Info  - 13:14:01.068] [SYNC] Synchronizing analyzer configuration for project 'com.shell.SCORPIO_AZURE'
[Info  - 13:14:01.172] Downloaded settings in 100ms
[Info  - 13:14:01.270] [SYNC] Fetching rule set for language 'apex' from profile 'AYcYnug9LPxM5ldZ83Ct'
[Info  - 13:14:01.352] [SYNC] Fetching rule set for language 'c' from profile 'AYcYTkxbLPxM5ldZ8zkX'
[Info  - 13:14:01.511] [SYNC] Fetching rule set for language 'cloudformation' from profile 'AYcYZVM_LPxM5ldZ80vF'
[Info  - 13:14:01.564] [SYNC] Fetching rule set for language 'cobol' from profile 'AYcYX3zBLPxM5ldZ80jr'
[Info  - 13:14:01.675] [SYNC] Fetching rule set for language 'cpp' from profile 'AYcYWCjcLPxM5ldZ80G4'
[Info  - 13:14:01.958] [SYNC] Fetching rule set for language 'css' from profile 'AYcYZGs7LPxM5ldZ80tx'
[Info  - 13:14:02.003] [SYNC] Fetching rule set for language 'docker' from profile 'AYcYZcW3LPxM5ldZ80wa'
[Info  - 13:14:02.048] [SYNC] Fetching rule set for language 'go' from profile 'AYcYZ62WLPxM5ldZ800w'
[Info  - 13:14:02.092] [SYNC] Fetching rule set for language 'java' from profile 'AYjHk6VMgujpnehf3LkS'
[Info  - 13:14:02.387] [SYNC] Fetching rule set for language 'js' from profile 'AYcYc2uvLPxM5ldZ81Dd'
[Info  - 13:14:02.529] [SYNC] Fetching rule set for language 'kubernetes' from profile 'AYcYd-DZLPxM5ldZ81XA'
[Info  - 13:14:02.565] [SYNC] Fetching rule set for language 'php' from profile 'AYcYf5zfLPxM5ldZ81wQ'
[Info  - 13:14:02.685] [SYNC] Fetching rule set for language 'plsql' from profile 'AYcYgqthLPxM5ldZ81-A'
[Info  - 13:14:02.784] [SYNC] Fetching rule set for language 'py' from profile 'AYcYhbBYLPxM5ldZ82HL'
[Info  - 13:14:02.918] [SYNC] Fetching rule set for language 'secrets' from profile 'AYcYi5qyLPxM5ldZ82aG'
[Info  - 13:14:02.964] [SYNC] Fetching rule set for language 'terraform' from profile 'AYcYj59hLPxM5ldZ82kH'
[Info  - 13:14:03.037] [SYNC] Fetching rule set for language 'ts' from profile 'AYcYkMVLLPxM5ldZ82mq'
[Info  - 13:14:03.182] [SYNC] Fetching rule set for language 'web' from profile 'AYcYaLALLPxM5ldZ8026'
[Info  - 13:14:03.223] [SYNC] Fetching rule set for language 'xml' from profile 'AYcYlyC_LPxM5ldZ82_f'
[Info  - 13:14:03.272] [SYNC] Fetching rule set for language 'yaml' from profile 'AXUBNCbtOfqgyQ10A9fd'
[Info  - 13:14:03.334] [SYNC] Synchronizing project branches for project 'com.shell.SCORPIO_AZURE'
[Info  - 13:14:03.401] [SYNC] Synchronizing issues for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:03.925] [SYNC] Synchronizing taint issues for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:04.026] [SYNC] Synchronizing hotspots for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:05.069] [SYNC] Synchronizing issues for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:05.100] [SYNC] Synchronizing taint issues for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:05.130] [SYNC] Synchronizing hotspots for project 'com.shell.SCORPIO_AZURE' on branch 'develop'
[Info  - 13:14:42.590] Analyzing file "file:///c:/Users/N.calis/SCORPIO/src/optimization/Optimizer/constants.py"...
[Error - 13:14:45.312] Analysis failed
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "startLine" is null
	at org.sonarsource.sonarlint.ls.connected.ServerIssueTrackerWrapper.lambda$toIssueTrackables$6(ServerIssueTrackerWrapper.java:198)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at org.sonarsource.sonarlint.ls.connected.ServerIssueTrackerWrapper.toIssueTrackables(ServerIssueTrackerWrapper.java:204)
	at org.sonarsource.sonarlint.ls.connected.ServerIssueTrackerWrapper.matchAndTrack(ServerIssueTrackerWrapper.java:100)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$30(AnalysisTaskExecutor.java:518)
	at java.base/java.util.HashMap.forEach(Unknown Source)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$31(AnalysisTaskExecutor.java:515)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeWithTiming(AnalysisTaskExecutor.java:548)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeConnected(AnalysisTaskExecutor.java:513)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeSingleModuleNonExcluded$20(AnalysisTaskExecutor.java:353)
	at java.base/java.util.Optional.map(Unknown Source)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModuleNonExcluded(AnalysisTaskExecutor.java:353)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModule(AnalysisTaskExecutor.java:308)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:226)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:191)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyze$2(AnalysisTaskExecutor.java:159)
	at java.base/java.util.HashMap.forEach(Unknown Source)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:159)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.run(AnalysisTaskExecutor.java:131)
	at org.sonarsource.sonarlint.ls.AnalysisScheduler.lambda$analyzeAsync$1(AnalysisScheduler.java:239)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

Hello, welcome to the community! And thanks for reporting this.

This looks very similar to a bug we fixed in the current development cycle (see also this other thread that reports a similar issue); the fix should ship with version 3.22 (scheduled for next week).

2 Likes

This is another Something fishy is going on with Sonar Cloud again - #4 by smileBeda

We cannot wait for this fix - the integration is 100% broken!
Is there a way to get this fix into our installs earlier?

Thank you.

@NielsCalis you can “fix” it by installing v3.20.2 (head to the vs code extensions list, and in the list find sonar cloud, click the cog, choose “install another version” and select v3.20.2

Hello, thanks for confirming this!

As announced last week, the fix for this bug was shipped today as part of version 3.22.0.

Please be aware that per this entry in the FAQ, this community has no SLA attached. We understand that such a situation can generate frustration, and we are human beings doing our best to provide fixes when applicable, and workarounds when not.

In 3.22.0, sonarlinting in connected mode in VS code works again. Thanks!

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.