Since version 3.4.0 of SonarLint, NullPointerException exception related to HashMap.foreach occurs

Please provide

  • Operating system: Windows 10
  • IDE name and flavor/env: VS Code
  • SonarLint plugin version: 3.4.0
  • Is connected mode used:
    • Connected to SonarQube : 8.9.6 (build 50800)

Description of the problem / question:
Hi,
Since upgrade of Sonarlint extension in version 3.4.0 for VS Code analysis failed with following stack:
(no precise error so difficult to give relevant topic subject, please feel free to update it with a relevant one if needed)

[Error - 08:25:04.249] Analysis failed
java.lang.NullPointerException
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFolderBranchManager.getReferenceBranchNameForFolder(WorkspaceFolderBranchManager.java:100)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.lambda$computeProjectBinding$5(ProjectBindingManager.java:208)
	at org.sonarsource.sonarlint.ls.connected.ServerIssueTrackerWrapper.matchAndTrack(ServerIssueTrackerWrapper.java:72)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$27(AnalysisTaskExecutor.java:454)
	at java.base/java.util.HashMap.forEach(HashMap.java:1336)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$28(AnalysisTaskExecutor.java:451)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeWithTiming(AnalysisTaskExecutor.java:493)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeConnected(AnalysisTaskExecutor.java:449)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModuleNonExcluded(AnalysisTaskExecutor.java:318)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModule(AnalysisTaskExecutor.java:268)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:192)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:160)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyze$4(AnalysisTaskExecutor.java:139)
	at java.base/java.util.HashMap.forEach(HashMap.java:1336)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:139)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.run(AnalysisTaskExecutor.java:116)
	at org.sonarsource.sonarlint.ls.AnalysisScheduler.lambda$analyzeAsync$1(AnalysisScheduler.java:185)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

If I make an update of project Bindings, analysis done automatically after the update is successful.
But if I open a new file, new analysis fails.

Below is the above stack plus traces of the upgrade and successful analysis.

[Error - 08:32:19.108] Analysis failed
java.lang.NullPointerException
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFolderBranchManager.getReferenceBranchNameForFolder(WorkspaceFolderBranchManager.java:100)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.lambda$computeProjectBinding$5(ProjectBindingManager.java:208)
	at org.sonarsource.sonarlint.ls.connected.ServerIssueTrackerWrapper.matchAndTrack(ServerIssueTrackerWrapper.java:72)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$27(AnalysisTaskExecutor.java:454)
	at java.base/java.util.HashMap.forEach(HashMap.java:1336)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyzeConnected$28(AnalysisTaskExecutor.java:451)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeWithTiming(AnalysisTaskExecutor.java:493)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeConnected(AnalysisTaskExecutor.java:449)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModuleNonExcluded(AnalysisTaskExecutor.java:318)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyzeSingleModule(AnalysisTaskExecutor.java:268)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:192)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:160)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.lambda$analyze$4(AnalysisTaskExecutor.java:139)
	at java.base/java.util.HashMap.forEach(HashMap.java:1336)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.analyze(AnalysisTaskExecutor.java:139)
	at org.sonarsource.sonarlint.ls.AnalysisTaskExecutor.run(AnalysisTaskExecutor.java:116)
	at org.sonarsource.sonarlint.ls.AnalysisScheduler.lambda$analyzeAsync$1(AnalysisScheduler.java:185)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)

[Info  - 08:32:26.263] Local storage status for connection with id '<default>': org.sonarsource.sonarlint.core.container.model.DefaultGlobalStorageStatus@62bb4183
[Info  - 08:32:26.482] Downloaded plugin list in 5ms
[Info  - 08:32:26.482] [SYNC] Synchronizing analyzer configuration for project 'VSC'
[Info  - 08:32:26.593] Downloaded settings in 109ms
[Info  - 08:32:26.711] [SYNC] Fetching rule set for language 'c' from profile 'AWWf4HSumrVDFZMXOa_b'
[Info  - 08:32:26.867] [SYNC] Fetching rule set for language 'cpp' from profile 'AWWf4HGgmrVDFZMXOa6K'
[Info  - 08:32:26.987] [SYNC] Fetching rule set for language 'java' from profile 'AW2G8NRgnf9GdkK0APKx'
[Info  - 08:32:27.119] [SYNC] Fetching rule set for language 'js' from profile 'AW2G8M8Enf9GdkK0AO8-'
[Info  - 08:32:27.166] [SYNC] Fetching rule set for language 'php' from profile 'AW2G8NcMnf9GdkK0APVI'
[Info  - 08:32:27.208] [SYNC] Fetching rule set for language 'plsql' from profile 'AWjDyBdH7MpiBUnj1YAM'
[Info  - 08:32:27.429] [SYNC] Fetching rule set for language 'py' from profile 'AXlGryY6xDVv3mpSSZgn'
[Info  - 08:32:27.490] [SYNC] Fetching rule set for language 'ts' from profile 'AW2G8NtVnf9GdkK0APdo'
[Info  - 08:32:27.522] [SYNC] Fetching rule set for language 'web' from profile 'AW2G8NW1nf9GdkK0APRP'
[Info  - 08:32:27.539] [SYNC] Fetching rule set for language 'xml' from profile 'AW2G8NX0nf9GdkK0APRn'
[Info  - 08:32:27.556] [SYNC] Synchronizing project branches for project 'VSC'
[Info  - 08:32:33.919] Analyzing 2 files...
[Info  - 08:32:33.969] Found 1 issue

I downgraded the version of the extension to previous one and with this version all is working fine.

Please advice.
thanks
Sebastien

1 Like

Hello Sebastien,

Thanks for raising this issue, we just released a bugfix on the Marketplace, you can update the extension and the problem should be gone

Hi Damien,

Thank you, it works fine.

Just a remark, extension version in VSCode marketplace is still 3.4.0, the same than the previous version. Correct ?
Thanks

Hi Sebastien,

I see 3.4.1, maybe you should refresh the page?

image

Hi Julien,

It is all good now.
Thanks

1 Like

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