This is an automated email from the ASF dual-hosted git repository.
entl 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 b923d00 LSP console IO is made more reliable, output is not lost now.
b923d00 is described below
commit b923d001be4afe7ebbb6b2bb7ef857aa6793037e
Author: Martin Entlicher <[email protected]>
AuthorDate: Thu Jan 6 15:01:20 2022 +0100
LSP console IO is made more reliable, output is not lost now.
---
.../server/debugging/launch/NbLaunchDelegate.java | 2 +-
.../server/ui/AbstractLspInputOutputProvider.java | 24 ++++++++++++++--------
.../src/org/openide/io/BridgingIOProvider.java | 3 +--
3 files changed, 17 insertions(+), 12 deletions(-)
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
index 163b39c..6d16f55 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
@@ -152,8 +152,8 @@ public abstract class NbLaunchDelegate {
}
}
};
- Project prj = FileOwnerQuery.getOwner(toRun);
if (nativeImageFile == null) {
+ Project prj = FileOwnerQuery.getOwner(toRun);
class W extends Writer {
@Override
public void write(char[] cbuf, int off, int len) throws
IOException {
diff --git
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractLspInputOutputProvider.java
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractLspInputOutputProvider.java
index e5a54f6..34c3407 100644
---
a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractLspInputOutputProvider.java
+++
b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractLspInputOutputProvider.java
@@ -58,12 +58,12 @@ public abstract class AbstractLspInputOutputProvider
implements InputOutputProvi
@Override
public final PrintWriter getOut(LspIO io) {
- return io.out;
+ return new PrintWriter(io.out);
}
@Override
public final PrintWriter getErr(LspIO io) {
- return io.err;
+ return new PrintWriter(io.err);
}
@Override
@@ -94,7 +94,7 @@ public abstract class AbstractLspInputOutputProvider
implements InputOutputProvi
@Override
public final boolean isIOClosed(LspIO io) {
- return io.closed;
+ return io.isClosed();
}
@Override
@@ -133,16 +133,15 @@ public abstract class AbstractLspInputOutputProvider
implements InputOutputProvi
private final IOContext ctx;
final Lookup lookup;
final Reader in;
- final PrintWriter out;
- final PrintWriter err;
- volatile boolean closed;
+ final LspWriter out;
+ final LspWriter err;
LspIO(String name, IOContext ioCtx, Lookup lookup) {
this.name = name;
this.ctx = ioCtx;
this.lookup = lookup;
- this.out = new PrintWriter(new LspWriter(true));
- this.err = new PrintWriter(new LspWriter(false));
+ this.out = new LspWriter(true);
+ this.err = new LspWriter(false);
Reader in;
try {
InputStream is = ioCtx.getStdIn();
@@ -155,7 +154,9 @@ public abstract class AbstractLspInputOutputProvider
implements InputOutputProvi
}
};
} catch (IOException ex) {
- err.write(ex.getLocalizedMessage());
+ try {
+ err.write(ex.getLocalizedMessage());
+ } catch (IOException ioex) {}
in = new CharArrayReader(new char[0]) {
@Override
public void close() {
@@ -165,8 +166,13 @@ public abstract class AbstractLspInputOutputProvider
implements InputOutputProvi
this.in = in;
}
+ boolean isClosed() {
+ return out.closed && err.closed;
+ }
+
private final class LspWriter extends Writer {
private final boolean stdIO;
+ volatile boolean closed;
LspWriter(boolean stdIO) {
this.stdIO = stdIO;
diff --git a/platform/openide.io/src/org/openide/io/BridgingIOProvider.java
b/platform/openide.io/src/org/openide/io/BridgingIOProvider.java
index c8d7416..8edd804 100644
--- a/platform/openide.io/src/org/openide/io/BridgingIOProvider.java
+++ b/platform/openide.io/src/org/openide/io/BridgingIOProvider.java
@@ -158,8 +158,7 @@ public class BridgingIOProvider<IO, S extends PrintWriter,
P, F>
@Override
public OutputWriter getErr() {
return new BridgingOutputWriter(ioDelegate,
- providerDelegate.getOut(ioDelegate)
- );
+ providerDelegate.getErr(ioDelegate));
}
@Override
---------------------------------------------------------------------
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