Severe error when using connected mode for SonarQube and SonarLint in VSCode

Hi,

I try to configure connected mode for VSCode and SonarQube but I have an error when updating the bindings related to this :

SEVERE: Internal error: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar

Here is the setup :
OS: Windows 10
VSCode : 1.39.0
SonarLint: 1.11.0
SonarQube : 6.7.6.38781

List of plugins installed :

{
  "plugins": [
    {
      "key": "scmgit",
      "name": "Git",
      "filename": "sonar-scm-git-plugin-1.8.0.1574.jar",
      "sonarLintSupported": false,
      "hash": "716a52eef1e2edefeafa4c83c9c33a22",
      "updatedAt": 1553667148359,
      "description": "Git SCM Provider for SonarQube",
      "version": "1.8 (build 1574)",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource",
      "organizationUrl": "http://www.sonarsource.com",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/scmgit.html",
      "issueTrackerUrl": "https://jira.sonarsource.com/browse/SONARSCGIT",
      "implementationBuild": "aec3dc8f5228aabd218e1cd31ac6e6515a43715d"
    },
    {
      "key": "gitlab",
      "name": "GitLab",
      "filename": "sonar-gitlab-plugin-3.0.2.jar",
      "sonarLintSupported": false,
      "hash": "6ff66f952fc6f9d2d87e8ca07362780d",
      "updatedAt": 1553667148359,
      "description": "GitLab Plugin for Reporting",
      "version": "3.0.2",
      "license": "GNU LGPL 3",
      "organizationName": "Talanlabs",
      "organizationUrl": "http://www.talanlabs.com",
      "editionBundled": false,
      "homepageUrl": "https://github.com/gabrie-allaigre/sonar-gitlab-plugin",
      "issueTrackerUrl": "https://github.com/gabrie-allaigre/sonar-gitlab-plugin/issues",
      "implementationBuild": "d04a1b6f22629bab354ac29599b3b78a190a9311"
    },
    {
      "key": "javacustom",
      "name": "Java Custom Rules",
      "filename": "java-custom-rules-1.0-SNAPSHOT.jar",
      "sonarLintSupported": true,
      "hash": "d56e489d14caaa296ff6b7d950903410",
      "updatedAt": 1570002624834,
      "description": "Java Custom Rules Example for SonarQube",
      "version": "1.0-SNAPSHOT",
      "editionBundled": false
    },
    {
      "key": "ldap",
      "name": "LDAP",
      "filename": "sonar-ldap-plugin-2.2.0.608.jar",
      "sonarLintSupported": false,
      "hash": "90da8f56fbbbb3624b8a3f6f1075860a",
      "updatedAt": 1514963489634,
      "description": "Delegates authentication to LDAP",
      "version": "2.2 (build 608)",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource",
      "organizationUrl": "https://www.sonarsource.com",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/ldap.html/sonar-ldap-plugin",
      "issueTrackerUrl": "http://jira.sonarsource.com/browse/LDAP",
      "implementationBuild": "79dc3fa4393a29667673c70182f3016288b548b7"
    },
    {
      "key": "scala",
      "name": "Scala",
      "filename": "sonar-scala-plugin-0.0.3.jar",
      "sonarLintSupported": false,
      "hash": "b9ae99f90cb8aca9fe5260c9921528f0",
      "updatedAt": 1541078494521,
      "description": "Enables analysis of Scala projects into Sonar.",
      "version": "0.0.3",
      "license": "GNU LGPL 3",
      "organizationName": "Sagacify",
      "organizationUrl": "https://www.sagacify.com",
      "editionBundled": false,
      "homepageUrl": "http://github.com/sagacify/sonar-scala",
      "issueTrackerUrl": "https://github.com/sagacify/sonar-scala/issues",
      "implementationBuild": "5ece71d32b1a3759ec8f8fc22800c3fb5b84a359"
    },
    {
      "key": "csharp",
      "name": "SonarC#",
      "filename": "sonar-csharp-plugin-7.12.0.8217.jar",
      "sonarLintSupported": false,
      "hash": "8cf6d90f5b8ea12f2576c494c6d81290",
      "updatedAt": 1553667148359,
      "description": "Code Analyzer for C#",
      "version": "7.12 (build 8217)",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource",
      "organizationUrl": "http://www.sonarsource.com",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/csharp.html",
      "issueTrackerUrl": "https://github.com/SonarSource/sonar-dotnet/issues",
      "implementationBuild": "68707856773961377d1af92ebf34455f49c91b9f"
    },
    {
      "key": "javascript",
      "name": "SonarJS",
      "filename": "sonar-javascript-plugin-5.1.1.7506.jar",
      "sonarLintSupported": true,
      "hash": "556c6247bee4506df29d82eccc325307",
      "updatedAt": 1553667148359,
      "description": "Code Analyzer for JavaScript",
      "version": "5.1.1 (build 7506)",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource and Eriks Nukis",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/javascript.html",
      "issueTrackerUrl": "https://github.com/SonarSource/sonar-javascript/issues",
      "implementationBuild": "7537ba97d4de0e1dbc862ddff9fadaed8cc02127"
    },
    {
      "key": "java",
      "name": "SonarJava",
      "filename": "sonar-java-plugin-5.11.0.17289.jar",
      "sonarLintSupported": true,
      "hash": "7b8427a6d19d134933df94d4625db54c",
      "updatedAt": 1553667148359,
      "description": "Code Analyzer for Java",
      "version": "5.11 (build 17289)",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource",
      "organizationUrl": "http://www.sonarsource.com",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/java.html",
      "issueTrackerUrl": "https://jira.sonarsource.com/browse/SONARJAVA",
      "implementationBuild": "af4a10d32a35370facd63e239fd8d452d981798a"
    },
    {
      "key": "Sonargraph",
      "name": "Sonargraph",
      "filename": "sonar-sonargraph-plugin-3.5.jar",
      "sonarLintSupported": false,
      "hash": "4cf8161f417979f8f50be191bfbe5aae",
      "updatedAt": 1514963489634,
      "description": "Provides architecture governance features accompanied by metrics about cyclic dependencies and other structural aspects.",
      "version": "3.5",
      "license": "Apache License 2",
      "organizationName": "hello2morrow",
      "organizationUrl": "http://www.hello2morrow.com",
      "editionBundled": false,
      "homepageUrl": "https://github.com/SonarQubeCommunity/sonar-sonargraph",
      "issueTrackerUrl": "https://github.com/SonarQubeCommunity/sonar-sonargraph/issues"
    },
    {
      "key": "scmsvn",
      "name": "Svn",
      "filename": "sonar-scm-svn-plugin-1.8.0.1168.jar",
      "sonarLintSupported": false,
      "hash": "f36a34de1eab142e98daffc6a4c815c8",
      "updatedAt": 1553667148359,
      "description": "Subversion SCM Provider for SonarQube",
      "version": "1.8.0.1168",
      "license": "GNU LGPL 3",
      "organizationName": "SonarSource",
      "organizationUrl": "http://www.sonarsource.com",
      "editionBundled": false,
      "homepageUrl": "http://redirect.sonarsource.com/plugins/scmsvn.html",
      "issueTrackerUrl": "https://jira.sonarsource.com/browse/SONARSCSVN",
      "implementationBuild": "4143f2d119022a758f6bf40aed4294e4c31706cf"
    },
    {
      "key": "jdepend",
      "name": "jDepend",
      "filename": "sonar-jdepend-plugin-1.1.1.jar",
      "sonarLintSupported": false,
      "hash": "5407df1bb9c5d21c711a88906f58fe48",
      "updatedAt": 1514985578769,
      "description": "jDepend Plugin for SonarQube",
      "version": "1.1.1",
      "license": "Apache License, Version 2.0",
      "editionBundled": false,
      "homepageUrl": "https://github.com/willemsrb/sonar-jdepend-plugin",
      "issueTrackerUrl": "https://github.com/willemsrb/sonar-jdepend-plugin/issues"
    }
  ]
}

SonarLint Output in VSCode :

Executing C:\Program Files (x86)\Java\jre1.8.0_221\bin\java -jar c:\Users\me\.vscode\extensions\sonarsource.sonarlint-vscode-1.11.0\server\sonarlint-ls.jar 59167 file:///c:/Users/me/.vscode/extensions/sonarsource.sonarlint-vscode-1.11.0/analyzers/sonarjs.jar file:///c:/Users/me/.vscode/extensions/sonarsource.sonarlint-vscode-1.11.0/analyzers/sonarphp.jar file:///c:/Users/me/.vscode/extensions/sonarsource.sonarlint-vscode-1.11.0/analyzers/sonarpython.jar file:///c:/Users/me/.vscode/extensions/sonarsource.sonarlint-vscode-1.11.0/analyzers/sonarts.jar file:///c:/Users/me/.vscode/extensions/sonarsource.sonarlint-vscode-1.11.0/analyzers/sonarhtml.jar
Binding to 59167
Child process connected on port 59167
[Trace - 15:46:38] Sending request 'initialize - (0)'.
Params: {
    "processId": 11784,
    "rootPath": "c:\\Users\\me\\development\\code\\WORKSPACE\\atm-moc-ui",
    "rootUri": "file:///c%3A/Users/me/development/code/atm-moc-ui",
    "capabilities": {
        "workspace": {
            "applyEdit": true,
            "workspaceEdit": {
                "documentChanges": true,
                "resourceOperations": [
                    "create",
                    "rename",
                    "delete"
                ],
                "failureHandling": "textOnlyTransactional"
            },
            "didChangeConfiguration": {
                "dynamicRegistration": true
            },
            "didChangeWatchedFiles": {
                "dynamicRegistration": true
            },
            "symbol": {
                "dynamicRegistration": true,
                "symbolKind": {
                    "valueSet": [
                        1,
                        ...
                        26
                    ]
                }
            },
            "executeCommand": {
                "dynamicRegistration": true
            },
            "configuration": true,
            "workspaceFolders": true
        },
        "textDocument": {
            "publishDiagnostics": {
                "relatedInformation": true
            },
            "synchronization": {
                "dynamicRegistration": true,
                "willSave": true,
                "willSaveWaitUntil": true,
                "didSave": true
            },
            "completion": {
                "dynamicRegistration": true,
                "contextSupport": true,
                "completionItem": {
                    "snippetSupport": true,
                    "commitCharactersSupport": true,
                    "documentationFormat": [
                        "markdown",
                        "plaintext"
                    ],
                    "deprecatedSupport": true,
                    "preselectSupport": true
                },
                "completionItemKind": {
                    "valueSet": [
                        1,
                        ...
                        25
                    ]
                }
            },
            "hover": {
                "dynamicRegistration": true,
                "contentFormat": [
                    "markdown",
                    "plaintext"
                ]
            },
            "signatureHelp": {
                "dynamicRegistration": true,
                "signatureInformation": {
                    "documentationFormat": [
                        "markdown",
                        "plaintext"
                    ],
                    "parameterInformation": {
                        "labelOffsetSupport": true
                    }
                }
            },
            "definition": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "references": {
                "dynamicRegistration": true
            },
            "documentHighlight": {
                "dynamicRegistration": true
            },
            "documentSymbol": {
                "dynamicRegistration": true,
                "symbolKind": {
                    "valueSet": [
                        1,
                        ...
                        26
                    ]
                },
                "hierarchicalDocumentSymbolSupport": true
            },
            "codeAction": {
                "dynamicRegistration": true,
                "codeActionLiteralSupport": {
                    "codeActionKind": {
                        "valueSet": [
                            "",
                            "quickfix",
                            "refactor",
                            "refactor.extract",
                            "refactor.inline",
                            "refactor.rewrite",
                            "source",
                            "source.organizeImports"
                        ]
                    }
                }
            },
            "codeLens": {
                "dynamicRegistration": true
            },
            "formatting": {
                "dynamicRegistration": true
            },
            "rangeFormatting": {
                "dynamicRegistration": true
            },
            "onTypeFormatting": {
                "dynamicRegistration": true
            },
            "rename": {
                "dynamicRegistration": true,
                "prepareSupport": true
            },
            "documentLink": {
                "dynamicRegistration": true
            },
            "typeDefinition": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "implementation": {
                "dynamicRegistration": true,
                "linkSupport": true
            },
            "colorProvider": {
                "dynamicRegistration": true
            },
            "foldingRange": {
                "dynamicRegistration": true,
                "rangeLimit": 5000,
                "lineFoldingOnly": true
            },
            "declaration": {
                "dynamicRegistration": true,
                "linkSupport": true
            }
        }
    },
    "initializationOptions": {
        "testFilePattern": "{**/test/**,**/*test*,**/*Test*}",
        "analyzerProperties": {},
        "productKey": "vscode",
        "telemetryStorage": "c:\\Users\\me\\.vscode\\extensions\\sonarlint_usage",
        "productName": "SonarLint VSCode",
        "productVersion": "1.11.0",
        "ideVersion": "1.39.0",
        "disableTelemetry": false,
        "typeScriptLocation": "c:\\Users\\me\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\node_modules",
        "includeRuleDetailsInCodeAction": true,
        "connectedModeServers": [
            {
                "serverId": "sonarqube.mycompany",
                "serverUrl": "http://mycompany.domain.com:9000",
                "token": "token.from.my.profile.in.sonarqube"
            }
        ],
        "connectedModeProject": {
            "serverId": "sonarqube.mycompany",
            "projectKey": "myproject.name.on.sonarqube"
        }
    },
    "trace": "verbose",
    "workspaceFolders": [
        {
            "uri": "file:///c%3A/Users/me/development/code/folder1",
            "name": "atm-moc-ui"
        },
        {
            "uri": "file:///c%3A/Users/me/development/code/folder3",
            "name": "moc-geoui-ui"
        },
        {
            "uri": "file:///c%3A/Users/me/development/code/folder4",
            "name": "moc-switchmgmt-ui"
        },
        {
            "uri": "file:///c%3A/Users/me/development/code/folder5",
            "name": "moc-ticketmgmt-ui"
        },
        {
            "uri": "file:///c%3A/Users/me/development/code/folder6notversioned",
            "name": "em-ui"
        }
    ]
}


[Trace - 15:46:39] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Starting connected SonarLint engine for sonarqube.mycompany..."
}


Starting connected SonarLint engine for sonarqube.mycompany...
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Create : C:\\Users\\me\\.sonarlint\\plugins"
}


Create : C:\Users\me\.sonarlint\plugins
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Plugin cache: C:\\Users\\me\\.sonarlint\\plugins"
}


Plugin cache: C:\Users\me\.sonarlint\plugins
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Create : C:\\Users\\me\\.sonarlint\\plugins\\_tmp"
}


Create : C:\Users\me\.sonarlint\plugins\_tmp
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Load plugins"
}


Load plugins
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Load plugins (done) | time=26ms"
}


Load plugins (done) | time=26ms
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "Plugins:"
}


Plugins:
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "  * SonarJS 5.1.1.7506 (javascript)"
}


  * SonarJS 5.1.1.7506 (javascript)
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 4,
    "message": "  * Java Custom Rules 1.0-SNAPSHOT (javacustom)"
}


  * Java Custom Rules 1.0-SNAPSHOT (javacustom)
[Trace - 15:46:40] Received notification 'window/logMessage'.
Params: {
    "type": 3,
    "message": "Using storage for server 'sonarqube.mycompany' (last update 25.09.19 13:59)"
}


[Info  - 15:46:40] Using storage for server 'sonarqube.mycompany' (last update 25.09.19 13:59)
Okt 10, 2019 3:46:40 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
	at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
	at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)
	at java.util.concurrent.CompletableFuture.uniApply(Unknown Source)
	at java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	at org.sonar.samples.java.MyJavaRulesPlugin.define(MyJavaRulesPlugin.java:36)
	at org.sonarsource.sonarlint.core.container.global.ExtensionInstaller.install(ExtensionInstaller.java:61)
	at org.sonarsource.sonarlint.core.container.global.GlobalExtensionContainer.doBeforeStart(GlobalExtensionContainer.java:35)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonarsource.sonarlint.core.container.storage.StorageContainer.doAfterStart(StorageContainer.java:126)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:118)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:77)
	at org.sonarlint.languageserver.ConnectedEngineFactory.createEngine(ConnectedEngineFactory.java:75)
	at org.sonarlint.languageserver.ConnectedEngineFactory.create(ConnectedEngineFactory.java:58)
	at org.sonarlint.languageserver.DefaultEngineCache.getOrCreateConnectedEngine(DefaultEngineCache.java:65)
	at org.sonarlint.languageserver.SonarLintLanguageServer.updateBinding(SonarLintLanguageServer.java:308)
	at org.sonarlint.languageserver.SonarLintLanguageServer.lambda$initialize$1(SonarLintLanguageServer.java:207)
	... 7 more
Caused by: java.lang.ClassNotFoundException: org.sonar.plugins.java.api.CheckRegistrar
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	... 33 more

[Trace - 15:46:40] Received response 'initialize - (0)' in 1947ms. Request failed: Internal error. (-32603).
Error data: "java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar\r\n\tat java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)\r\n\tat java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)\r\n\tat java.util.concurrent.CompletableFuture.uniApply(Unknown Source)\r\n\tat java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)\r\n\tat java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)\r\n\tat java.util.concurrent.ForkJoinTask.doExec(Unknown Source)\r\n\tat java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)\r\n\tat java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)\r\n\tat java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)\r\nCaused by: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar\r\n\tat java.lang.ClassLoader.defineClass1(Native Method)\r\n\tat java.lang.ClassLoader.defineClass(Unknown Source)\r\n\tat java.security.SecureClassLoader.defineClass(Unknown Source)\r\n\tat java.net.URLClassLoader.defineClass(Unknown Source)\r\n\tat java.net.URLClassLoader.access$100(Unknown Source)\r\n\tat java.net.URLClassLoader$1.run(Unknown Source)\r\n\tat java.net.URLClassLoader$1.run(Unknown Source)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat java.net.URLClassLoader.findClass(Unknown Source)\r\n\tat org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)\r\n\tat org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)\r\n\tat org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)\r\n\tat org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)\r\n\tat org.sonar.samples.java.MyJavaRulesPlugin.define(MyJavaRulesPlugin.java:36)\r\n\tat org.sonarsource.sonarlint.core.container.global.ExtensionInstaller.install(ExtensionInstaller.java:61)\r\n\tat org.sonarsource.sonarlint.core.container.global.GlobalExtensionContainer.doBeforeStart(GlobalExtensionContainer.java:35)\r\n\tat org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:123)\r\n\tat org.sonarsource.sonarlint.core.container.storage.StorageContainer.doAfterStart(StorageContainer.java:126)\r\n\tat org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)\r\n\tat org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:118)\r\n\tat org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:77)\r\n\tat org.sonarlint.languageserver.ConnectedEngineFactory.createEngine(ConnectedEngineFactory.java:75)\r\n\tat org.sonarlint.languageserver.ConnectedEngineFactory.create(ConnectedEngineFactory.java:58)\r\n\tat org.sonarlint.languageserver.DefaultEngineCache.getOrCreateConnectedEngine(DefaultEngineCache.java:65)\r\n\tat org.sonarlint.languageserver.SonarLintLanguageServer.updateBinding(SonarLintLanguageServer.java:308)\r\n\tat org.sonarlint.languageserver.SonarLintLanguageServer.lambda$initialize$1(SonarLintLanguageServer.java:207)\r\n\t... 7 more\r\nCaused by: java.lang.ClassNotFoundException: org.sonar.plugins.java.api.CheckRegistrar\r\n\tat org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)\r\n\tat org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)\r\n\tat org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)\r\n\t... 33 more\r\n"


[Error - 15:46:40] Server initialization failed.
  Message: Internal error.
  Code: -32603 
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
	at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
	at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)
	at java.util.concurrent.CompletableFuture.uniApply(Unknown Source)
	at java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
	at java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
	at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
	at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	at org.sonar.samples.java.MyJavaRulesPlugin.define(MyJavaRulesPlugin.java:36)
	at org.sonarsource.sonarlint.core.container.global.ExtensionInstaller.install(ExtensionInstaller.java:61)
	at org.sonarsource.sonarlint.core.container.global.GlobalExtensionContainer.doBeforeStart(GlobalExtensionContainer.java:35)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonarsource.sonarlint.core.container.storage.StorageContainer.doAfterStart(StorageContainer.java:126)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:118)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:77)
	at org.sonarlint.languageserver.ConnectedEngineFactory.createEngine(ConnectedEngineFactory.java:75)
	at org.sonarlint.languageserver.ConnectedEngineFactory.create(ConnectedEngineFactory.java:58)
	at org.sonarlint.languageserver.DefaultEngineCache.getOrCreateConnectedEngine(DefaultEngineCache.java:65)
	at org.sonarlint.languageserver.SonarLintLanguageServer.updateBinding(SonarLintLanguageServer.java:308)
	at org.sonarlint.languageserver.SonarLintLanguageServer.lambda$initialize$1(SonarLintLanguageServer.java:207)
	... 7 more
Caused by: java.lang.ClassNotFoundException: org.sonar.plugins.java.api.CheckRegistrar
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	... 33 more

[Trace - 15:46:40] Sending request 'shutdown - (1)'.
[Trace - 15:46:40] Received response 'shutdown - (1)' in 2ms.
Result: {}


[Trace - 15:46:40] Sending notification 'exit'.
No parameters provided.

Thanks in anticipate for any help provided. :slight_smile:

Edit : if I deactivate connectedMode then SonarLint functions very well locally in the IDE. It is just not synchronized.

Hi Pascal,

{
      "key": "javacustom",
      "name": "Java Custom Rules",
      "filename": "java-custom-rules-1.0-SNAPSHOT.jar",
      "sonarLintSupported": true,
      "hash": "d56e489d14caaa296ff6b7d950903410",
      "updatedAt": 1570002624834,
      "description": "Java Custom Rules Example for SonarQube",
      "version": "1.0-SNAPSHOT",
      "editionBundled": false
    }

The error is due to the custom plugin javacustom that is installed on your SonarQube server. In the latest SonarLint release, we have started excluding plugins that we know for sure are useless to be downloaded/loaded. That’s why we have stopped to load the SonarJava analyzer (since we don’t support analyzing the Java language in VSCode for now).

The problem is that the custom plugin requires SonarJava, but is missing the metadata to let SonarLint knows. This problem exists in our own sample. I have submitted a PR to fix this, you can look at it to do the same on your custom plugin.

1 Like

Hi Julien,

Wow ! I am impressed… My guts told me it had to do with the Java Custom Rules… I will see what I can do to try your patch and let you know.

Thanks a lot

Hi @Julien_HENRY,

So we could apply the patch you provided in your PR and it seems to work as I don’t have any error anymore now when Updating Server/project bindings.

But still I am not sure what I should check now. I can see in the Sonarlint output now something like this:

[Trace - 10:22:18] Sending request 'workspace/executeCommand - (2)'.
Params: {
    "command": "SonarLint.UpdateServerStorage",
    "arguments": [
        {
            "serverId": "sonarqube.mycompany",
            "serverUrl": "http://mycompany.domain.com:9000",
            "token": "token.from.my.profile.in.sonarqube"
        }
    ]
}

But nothing else like a success notification or whatsoever and the Rules in the VS Code project/workspace are not updated according to those set on SonarQube. Is this normal ?
Again, thanks in anticipate.
Pascal

Do you mean the rules configuration panel? This UI is only to configure rules when not in connected mode. When you are in connected mode, there is no UI to see activated rules, since SonarQube is the source of the configuration.

Yes this is what I meant : the rules in the configuration panel in the Side Bar, under Open Editors, Workspace, etc. Thanks for the information.

But when you say

[quote]
When you are in connected mode, there is no UI to see activated rules
[/quote] do you mean the panel should not be visible at all in activated mode or just that it is not synchronized with the connected rules ?

Also I went to check directly in the code. On SonarQube, the Quality Profile we use for the project set for my workspace activated the javascript:ForIn rule. I checked out a branch in which there are some non compliant code to this rule and Sonarlint does not highlight it.

And if I check the Sonarlint output when I restart VS Code, I can see

[Warn  - 11:28:20] No storage for server 'sonarqube.mycompany'. Please update.

I imagine this means the Update has not been processed ?

Panel is always visible, and only used to configure rules for non connected mode. This is currently not supported, but we will soon support bindind per workspace folder. So you may have in your workspace multiple folders, some of them bound to a SonarQube project, some not. The rule configuration view will define rules to be used for non connected folders.

I imagine this means the Update has not been processed ?

Indeed, please trigger an update of the binding, and look in the console for possible issues.

Thanks a lot for your support. Unfortunately when I trigger the command to update the binding with SonarQube, I can see this in the output:

[Trace - 14:30:46] Sending request 'workspace/executeCommand - (5)'.
Params: {
    "command": "SonarLint.UpdateServerStorage",
    "arguments": [
        {
            "serverId": "sonarqube.mycompany",
            "serverUrl": "http://mycompany.domain.com:9000",
            "token": "token.from.my.profile.in.sonarqube"
        }
    ]
}

but then nothing happens. Where/what can I check on the file system to see if something is proceeded please ? What is the expected behavior : should I have a success notification, should I see a message in the output ?

Here is what I see in the SonarLint output, when triggering the “Update binding to SonarLint/SonarCloud” global command:

[Info - 15:19:07] SonarTS Server is stopped
Starting connected SonarLint engine for <my server>...
Create : /home/julien/.sonarlint/plugins
Plugin cache: /home/julien/.sonarlint/plugins
Create : /home/julien/.sonarlint/plugins/_tmp
Load plugins
Load plugins (done) | time=14ms
Plugins:
* SonarPython 1.16.0.4432 (python)
* SonarHTML 3.2.0.2082 (web)
* ...
[Info - 15:19:07] Using storage for server '<myserver>' (last update 14/10/2019 15:18)
[Info - 15:19:07] Starting SonarTS Server
[...]
[Info - 15:19:07] SonarTS Server is started
Connected SonarLint engine started for <myserver>
Updating global storage of server next, may take some time...
[Info - 15:19:07] SonarTS Server connected to 43747
[Info - 15:19:07] SonarTS Server is stopped
Create : /home/julien/.sonarlint/plugins
Plugin cache: /home/julien/.sonarlint/plugins
Create : /home/julien/.sonarlint/plugins/_tmp
GET 200 https://next.sonarqube.com/sonarqube/api/system/status | response time=656ms
Downloaded server infos in 657ms
GET 200 https://next.sonarqube.com/sonarqube/api/plugins/installed | response time=131ms
[Info - 15:19:08] Downloaded plugin list in 137ms
GET 200 https://next.sonarqube.com/sonarqube/api/settings/values.protobuf | response time=136ms
[Info - 15:19:08] Downloaded settings in 147ms
[...]
Successfully updated global storage of server <myserver>
[Info - 15:19:34] SonarTS Server connected to 41235
GET 200 https://next.sonarqube.com/sonarqube/api/qualityprofiles/search.protobuf?project=org.sonarsource.sonarlint.vscode%3Asonarlint-vscode | response time=650ms
Downloaded project quality profiles in 655ms
GET 200 https://next.sonarqube.com/sonarqube/api/settings/values.protobuf?component=org.sonarsource.sonarlint.vscode%3Asonarlint-vscode | response time=137ms
[Info - 15:25:33] Downloaded settings in 148ms
GET 200 https://next.sonarqube.com/sonarqube/api/components/tree.protobuf?qualifiers=BRC&component=org.sonarsource.sonarlint.vscode%3Asonarlint-vscode&ps=500&p=1 | response time=128ms
Page downloaded in 128ms
GET 200 https://next.sonarqube.com/sonarqube/batch/issues?key=org.sonarsource.sonarlint.vscode%3Asonarlint-vscode | response time=136ms
Downloaded issues in 155ms
GET 200 https://next.sonarqube.com/sonarqube/api/components/tree.protobuf?qualifiers=FIL,UTS&component=org.sonarsource.sonarlint.vscode%3Asonarlint-vscode&ps=500&p=1 | response time=135ms
Page downloaded in 138ms
Resolved sqPathPrefix: / idePathPrefix: / for folder /home/julien/Prog/Projects/sonarlint/sonarlint-vscode

@pluxain you might want to fully remove references to the previous version of your custom rule plugin, a cached version is probably preventing the binding to be updated.

According to the logs you posted previously, there should be a file named java-custom-rules-1.0-SNAPSHOT.jar somewhere under c:\Users\me\.sonarlint\plugins, e.g c:\Users\me\.sonarlint\plugins\01117d4934697346a470564473e26c67\java-custom-rules-1.0-SNAPSHOT.jar.

I suggest that you exit VSCode, remove the folder that contains the file (here, that would be c:\Users\me\.sonarlint\plugins\01117d4934697346a470564473e26c67), restart VSCode and re-attempt an update of the binding.

I created a ticket on our side to make sure that 1. a single plugin not loading does not result in an unstable state and 2. does not prevent a binding update.

Hi @JBL_SonarSource,

Thanks for joining the party ! Actually I already removed completely the .sonarlint folder under my User folder. Without any success…

@Julien_HENRY I do not have an output like the one you described.

I will keep trying things and let you know.
Thanks

I checked the SonarQube WebServer log and there is an error. I think it is related as the error appears every time I try to update from VS Code:

2019.10.14 17:18:45 ERROR web[AW3JV85NuzcAVFDXAACn][o.s.s.p.UpdateCenterClient] Fail to connect to update center
org.sonar.api.utils.SonarException: Fail to download: https://update.sonarsource.org/update-center.properties (no proxy)
   at org.sonar.core.util.DefaultHttpDownloader.failToDownload(DefaultHttpDownloader.java:155)
   at org.sonar.core.util.DefaultHttpDownloader.readString(DefaultHttpDownloader.java:113)
   at org.sonar.api.utils.UriReader.readString(UriReader.java:70)
   at org.sonar.server.plugins.UpdateCenterClient.init(UpdateCenterClient.java:109)
   at org.sonar.server.plugins.UpdateCenterClient.getUpdateCenter(UpdateCenterClient.java:92)
   at org.sonar.server.plugins.UpdateCenterMatrixFactory.getUpdateCenter(UpdateCenterMatrixFactory.java:44)
   at org.sonar.server.platform.ws.UpgradesAction.writeResponse(UpgradesAction.java:100)
   at org.sonar.server.platform.ws.UpgradesAction.handle(UpgradesAction.java:91)
   at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:103)
   at org.sonar.server.ws.WebServiceFilter.doFilter(WebServiceFilter.java:86)
   at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:126)
   at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:95)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:87)
   at org.sonar.server.user.UserSessionFilter.doFilter(UserSessionFilter.java:71)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:72)
   at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:48)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:61)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.sonar.server.platform.web.requestid.RequestIdFilter.doFilter(RequestIdFilter.java:63)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
   at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
   at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
   at java.net.Socket.connect(Socket.java:589)
   at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666)
   at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
   at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
   at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
   at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
   at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
   at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
   at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
   at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
   at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
   at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:167)
   at org.sonar.core.util.DefaultHttpDownloader$BaseHttpDownloader$HttpInputSupplier.getInput(DefaultHttpDownloader.java:272)
   at org.sonar.core.util.DefaultHttpDownloader.readString(DefaultHttpDownloader.java:111)
   ... 48 common frames omitted

We are investigating with Team mates. I f you have any input they are welcome !

So the SonarQube error has been solved. But I still cannot perform a proper binding between VSCode Sonarlint and Sonarqube. Everytime I trigger a server binding update it seems to trigger an Udpate on SonarQube as I can see this kind of message in the Web log:

2019.10.15 11:38:21 INFO  web[AW3OoP6002YG2GmKAAB/][o.s.u.c.UpdateCenter] The plugin 'java' version : 5.13.1.18282 has not been found on the update center.

Is this normal ?

Also as I do not receive any information I voluntarily put wrong configuration to witness errors in the output but I get this instead:

Okt 15, 2019 11:55:52 AM org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint notify
INFO: Unsupported notification method: $/setTraceNotification

I am sorry that this starts to be very confusing, but I do not know where to look now…

When I change the project settings to use a different serverId I can see this in the output:

[Trace - 12:01:37] Sending request 'workspace/executeCommand - (17)'.
Params: {
    "command": "SonarLint.UpdateProjectBinding",
    "arguments": {
        "serverId": "DCB50A6D-1bf0704780837d9",
        "projectKey": "ATMaster_UI"
    }
}
...
[Trace - 12:01:37] Received response 'workspace/executeCommand - (17)' in 3ms.
No result returned.

What is strange is that all the logs you are showing are not strictly speaking SonarLint logs. This is language server protocol messages. Those messages should only be logged when you set sonarlint.trace.server to verbose in the VSCode settings.
Are you correctly looking at the SonarLint output?

Sorry, I had indeed the verbose for the VSCode settings for SonarLint plugins and in my previous messages I was also showing logs from the SonarQube Web logs in Administration > System

Other than that I am showing what I have in VSCode Output for SonarLint, yes.

Please disable language server traces, remove the SonarLint storage (C:\Users\me\.sonarlint), and then restart VSCode.

Do you see anything in the SonarLint output when triggering an update of the binding? Or just after starting VSCode and opening a source file that should be analyzed by SonarLint?

Thanks a lot for your support. I finally solved the issue, and it turns out that after solving the problem with the patch you provided, the problem for the Server binding not working was a proxy issue…

It seems VSCode does not use the Environment variables from windows HTTP_PROXY and HTTPS_PROXY or something like that. So once I set the http.proxy setting in VSCode everything worked (our company uses proxy and SonarQube is hosted on a domain you cannot find without proxy)

So now I can see everything working.
I am very sorry I made you guys loose so much time for this…

No worries, and thanks for the update!