This is an automated email from the ASF dual-hosted git repository.

vieiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 8e5d7cc  LSPBindings synchronization fix
     new 646f84c  Merge pull request #3644 from vieiro/hotfix/lsp-client-sync
8e5d7cc is described below

commit 8e5d7cc170a056b6759952b893ca994459b3c0ae
Author: Antonio Vieiro <[email protected]>
AuthorDate: Sat Feb 19 21:46:33 2022 +0100

    LSPBindings synchronization fix
---
 .../netbeans/modules/lsp/client/LSPBindings.java   | 31 ++++++++++++----------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git 
a/ide/lsp.client/src/org/netbeans/modules/lsp/client/LSPBindings.java 
b/ide/lsp.client/src/org/netbeans/modules/lsp/client/LSPBindings.java
index 2fcb1cd..b2e7e06 100644
--- a/ide/lsp.client/src/org/netbeans/modules/lsp/client/LSPBindings.java
+++ b/ide/lsp.client/src/org/netbeans/modules/lsp/client/LSPBindings.java
@@ -51,7 +51,6 @@ import java.util.logging.Logger;
 import java.util.stream.Collectors;
 import javax.swing.event.ChangeListener;
 import org.eclipse.lsp4j.ClientCapabilities;
-import org.eclipse.lsp4j.CompletionCapabilities;
 import org.eclipse.lsp4j.DocumentSymbolCapabilities;
 import org.eclipse.lsp4j.InitializeParams;
 import org.eclipse.lsp4j.InitializeResult;
@@ -346,9 +345,11 @@ public class LSPBindings {
 
                 lc.setBindings(bindings);
 
-                workspace2Extension2Server.put(root, 
-                    Arrays.stream(extensions)
-                    .collect(Collectors.toMap(k -> k, v -> bindings)));
+                synchronized(LSPBindings.class) {
+                    workspace2Extension2Server.put(root, 
+                        Arrays.stream(extensions)
+                        .collect(Collectors.toMap(k -> k, v -> bindings)));
+                }
                 WORKER.post(() -> cs.fireChange());
             } catch (InterruptedException | ExecutionException | IOException 
ex) {
                 Exceptions.printStackTrace(ex);
@@ -506,18 +507,20 @@ public class LSPBindings {
         @Override
         @SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")
         public void run() {
-            for (Map<String, ServerDescription> mime2Bindings : 
project2MimeType2Server.values()) {
-                for (ServerDescription description : mime2Bindings.values()) {
-                    LSPBindings b = description.bindings != null ? 
description.bindings.get() : null;
-                    if (b != null && b.process != null) {
-                        b.process.destroy();
+            synchronized(LSPBindings.class) {
+                for (Map<String, ServerDescription> mime2Bindings : 
project2MimeType2Server.values()) {
+                    for (ServerDescription description : 
mime2Bindings.values()) {
+                        LSPBindings b = description.bindings != null ? 
description.bindings.get() : null;
+                        if (b != null && b.process != null) {
+                            b.process.destroy();
+                        }
                     }
                 }
-            }
-            for (Map<String, LSPBindings> mime2Bindings : 
workspace2Extension2Server.values()) {
-                for (LSPBindings b : mime2Bindings.values()) {
-                    if (b != null && b.process != null) {
-                        b.process.destroy();
+                for (Map<String, LSPBindings> mime2Bindings : 
workspace2Extension2Server.values()) {
+                    for (LSPBindings b : mime2Bindings.values()) {
+                        if (b != null && b.process != null) {
+                            b.process.destroy();
+                        }
                     }
                 }
             }

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to