diff --git a/build.xml b/build.xml index c10f2a3..ede5131 100644 --- a/build.xml +++ b/build.xml @@ -53,6 +53,7 @@ patches/7893-draft.diff patches/8460-draft.diff patches/8745-draft.diff + patches/8770.diff patches/disable-error-notification.diff patches/mvn-sh.diff patches/project-marker-jdk.diff diff --git a/patches/8770.diff b/patches/8770.diff new file mode 100644 index 0000000..e613d76 --- /dev/null +++ b/patches/8770.diff @@ -0,0 +1,35 @@ +diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/Server.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/Server.java +index 747d151600..c4dee13f92 100644 +--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/Server.java ++++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/Server.java +@@ -142,6 +142,7 @@ import org.netbeans.modules.parsing.spi.indexing.Indexable; + import org.netbeans.modules.progress.spi.InternalHandle; + import org.netbeans.spi.project.ActionProgress; + import org.netbeans.spi.project.ActionProvider; ++import org.openide.LifecycleManager; + import org.openide.filesystems.FileObject; + import org.openide.filesystems.FileUtil; + import org.openide.util.Lookup; +@@ -460,6 +461,7 @@ public final class Server { + private final OpenedDocuments openedDocuments = new OpenedDocuments(); + + private final LspSession lspSession; ++ private boolean shutdownReqReceived = false; + + LanguageServerImpl(LspSession session) { + this.lspSession = session; +@@ -1103,11 +1105,14 @@ public final class Server { + + @Override + public CompletableFuture shutdown() { ++ shutdownReqReceived = true; + return CompletableFuture.completedFuture(null); + } + + @Override + public void exit() { ++ int exitCode = shutdownReqReceived ? 0 : 1; ++ LifecycleManager.getDefault().exit(exitCode); + } + + @JsonDelegate