From 42c722411ea392683d11a412cadeee4a07ab91b1 Mon Sep 17 00:00:00 2001 From: Marc Schreiber Date: Thu, 18 Sep 2025 13:47:12 +0200 Subject: [PATCH] Don't Rely on LSP Client to Init Maps This commit makes sure that clients who send minimal data in the initialize options cause some NullPointerExceptions (as reported in sonarlint.nvim issue #35: https://gitlab.com/schrieveslaach/sonarlint.nvim/-/issues/35). Also, this commit restores the previous behavior to automatically analyze files that are open in the editor. --- ...arLintLanguageServerInitializationOptions.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/sonarsource/sonarlint/ls/SonarLintLanguageServerInitializationOptions.java b/src/main/java/org/sonarsource/sonarlint/ls/SonarLintLanguageServerInitializationOptions.java index bf0bdd388..b8a76ef60 100644 --- a/src/main/java/org/sonarsource/sonarlint/ls/SonarLintLanguageServerInitializationOptions.java +++ b/src/main/java/org/sonarsource/sonarlint/ls/SonarLintLanguageServerInitializationOptions.java @@ -19,6 +19,7 @@ */ package org.sonarsource.sonarlint.ls; +import java.util.Collections; import java.util.Map; public record SonarLintLanguageServerInitializationOptions( @@ -31,7 +32,7 @@ public record SonarLintLanguageServerInitializationOptions( Map additionalAttributes, String clientNodePath, boolean focusOnNewCode, - boolean automaticAnalysis, + Boolean automaticAnalysis, String omnisharpDirectory, String csharpOssPath, String csharpEnterprisePath, @@ -41,4 +42,16 @@ public record SonarLintLanguageServerInitializationOptions( Map rules, Map connections) { + public SonarLintLanguageServerInitializationOptions { + if (rules == null) { + rules = Collections.emptyMap(); + } + if (connections == null) { + connections = Collections.emptyMap(); + } + if (automaticAnalysis == null) { + automaticAnalysis = Boolean.TRUE; + } + } + }