vscode-abl/vscode-abl

SonarLint VSCode - endless stream of "Skipping text document analysis because workspace folder is not synchronized yet" output log entries

Closed this issue · 2 comments

Hi,

Since there is no SonarLint VSCode issue tracker I'm adding this here.
I just set up the SonarLint ABL plugin and opened a source file in my project, added a line and saved the file.
In the SonarLint Output tab I now see an endless stream of the following entries: (redacted file name)

[Info - 16:33:52.554] Skipping text document analysis because workspace folder is not synchronized yet "file:///c:/Workspace/...filename.cls"
[Info - 16:33:52.760] Skipping text document analysis because workspace folder is not synchronized yet "file:///c:/Workspace/...filename.cls"
[Info - 16:33:52.965] Skipping text document analysis because workspace folder is not synchronized yet "file:///c:/Workspace/...filename.cls"
[Info - 16:33:53.170] Skipping text document analysis because workspace folder is not synchronized yet "file:///c:/Workspace/...filename.cls"
...

Any idea what's going on and how I can fix this?

I just installed the latest version of the SonarLint ABL plugin and tried again, resulting in this:

Executing c:\Program Files\Eclipse Adoptium\jdk-17.0.11.9-hotspot\bin\java -jar c:\Users\lievendf\.vscode\extensions\riversidesoftware.sonarlint-abl-4.10.99002\server\sonarlint-ls.jar -stdio -analyzers c:\Users\lievendf\.vscode\extensions\riversidesoftware.sonarlint-abl-4.10.99002\analyzers\sonaroe.jar c:\Users\lievendf\.vscode\extensions\riversidesoftware.sonarlint-abl-4.10.99002\analyzers\progress.jar
[Info - 16:40:06.424] SonarLint backend started, instance=org.sonarsource.sonarlint.core.rpc.impl.SonarLintRpcServerImpl@7c137fd5
[Info - 16:40:54.020] Started embedded server on port 64120
[Warn - 16:40:54.391] Can't open directory channel. Log directory fsync won't be performed.
[Error - 16:40:55.729] Unable to update configuration of folder file:///c:/Workspace/glims-vscode-poc/glims_dev_pro
java.util.concurrent.ExecutionException: java.nio.file.InvalidPathException: Illegal char <"> at index 0: ""
	at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
	at org.sonarsource.sonarlint.ls.settings.SettingsManager.updateWorkspaceFolderSettings(SettingsManager.java:349)
	at org.sonarsource.sonarlint.ls.settings.SettingsManager.lambda$didChangeConfiguration$2(SettingsManager.java:194)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at org.sonarsource.sonarlint.ls.settings.SettingsManager.lambda$didChangeConfiguration$3(SettingsManager.java:194)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.nio.file.InvalidPathException: Illegal char <"> at index 0: ""
	at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
	at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
	at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
	at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232)
	at java.base/java.nio.file.Path.resolve(Path.java:515)
	at org.sonarsource.sonarlint.ls.settings.SettingsManager.updateProperties(SettingsManager.java:291)
	at org.sonarsource.sonarlint.ls.settings.SettingsManager.lambda$requestSonarLintAndOmnisharpConfigurationAsync$7(SettingsManager.java:269)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
	at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2147)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:212)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	... 3 more

[Error - 16:41:55.747] Failed to initialize workspace folders.
java.lang.IllegalStateException: Unable to get settings in time
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFolderWrapper.getSettings(WorkspaceFolderWrapper.java:91)
	at java.base/java.util.Optional.map(Optional.java:260)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.lambda$getBinding$0(ProjectBindingManager.java:167)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.getBinding(ProjectBindingManager.java:166)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.getBinding(ProjectBindingManager.java:133)
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFoldersManager.lambda$getBindingProvider$8(WorkspaceFoldersManager.java:126)
	at org.sonarsource.sonarlint.ls.backend.BackendService.lambda$addWorkspaceFolders$4(BackendService.java:199)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at org.sonarsource.sonarlint.ls.backend.BackendService.addWorkspaceFolders(BackendService.java:200)
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFoldersManager.lambda$initialize$1(WorkspaceFoldersManager.java:80)
	at org.sonarsource.sonarlint.ls.util.CatchingRunnable.run(CatchingRunnable.java:36)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

[Error - 16:42:55.760] Error when handling a notification
[Error - 16:42:55.761] java.lang.IllegalStateException: Unable to get settings in time
	at org.sonarsource.sonarlint.ls.folders.WorkspaceFolderWrapper.getSettings(WorkspaceFolderWrapper.java:91)
	at java.base/java.util.Optional.map(Optional.java:260)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.lambda$getBinding$0(ProjectBindingManager.java:167)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.getBinding(ProjectBindingManager.java:166)
	at org.sonarsource.sonarlint.ls.connected.ProjectBindingManager.getBinding(ProjectBindingManager.java:133)
	at org.sonarsource.sonarlint.ls.ForcedAnalysisCoordinator.lambda$analyzeAllUnboundOpenFiles$7(ForcedAnalysisCoordinator.java:132)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
	at java.base/java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3612)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at org.sonarsource.sonarlint.ls.ForcedAnalysisCoordinator.analyzeAllUnboundOpenFiles(ForcedAnalysisCoordinator.java:133)
	at org.sonarsource.sonarlint.ls.clientapi.SonarLintVSCodeClient.lambda$didChangeAnalysisReadiness$18(SonarLintVSCodeClient.java:532)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at org.sonarsource.sonarlint.ls.clientapi.SonarLintVSCodeClient.didChangeAnalysisReadiness(SonarLintVSCodeClient.java:524)
	at org.sonarsource.sonarlint.core.rpc.client.SonarLintRpcClientImpl.lambda$didChangeAnalysisReadiness$33(SonarLintRpcClientImpl.java:358)
	at org.sonarsource.sonarlint.core.rpc.client.SonarLintRpcClientImpl.lambda$notify$4(SonarLintRpcClientImpl.java:150)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Could this be the cause of the "Skipping..." entries?

Since there is no SonarLint VSCode issue tracker I'm adding this here.

Absolutely fine.

The endless stream of Skipping text document is supposed to be fixed in 4.10, but let me know in this ticket if you still see it in this version.

The new stack trace is part of the changes introduced in 4.10. As this is related to languages (C / C#) that are not part of this customized version of Sonarlint, I'll just deactivate this part and release a new version.