Skip to content

Commit 5aedf4c

Browse files
committed
replace complex logic on whenComplete
1 parent 45f558a commit 5aedf4c

File tree

1 file changed

+3
-30
lines changed
  • com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter

1 file changed

+3
-30
lines changed

com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/ProtocolServer.java

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,13 @@
1313

1414
import java.io.InputStream;
1515
import java.io.OutputStream;
16-
import java.util.concurrent.CompletionException;
1716
import java.util.logging.Level;
1817
import java.util.logging.Logger;
1918

2019
import com.microsoft.java.debug.core.Configuration;
2120
import com.microsoft.java.debug.core.UsageDataSession;
2221
import com.microsoft.java.debug.core.protocol.AbstractProtocolServer;
2322
import com.microsoft.java.debug.core.protocol.Messages;
24-
import com.sun.jdi.VMDisconnectedException;
2523

2624
public class ProtocolServer extends AbstractProtocolServer {
2725
private static final Logger logger = Logger.getLogger(Configuration.LOGGER_NAME);
@@ -67,36 +65,11 @@ protected void sendMessage(Messages.ProtocolMessage message) {
6765

6866
protected void dispatchRequest(Messages.Request request) {
6967
usageDataSession.recordRequest(request);
70-
this.debugAdapter.dispatchRequest(request).whenComplete((response, ex) -> {
71-
if (response != null) {
72-
sendMessage(response);
73-
} else {
74-
response = new Messages.Response(request.seq, request.command);
75-
if (ex != null) {
76-
if (ex instanceof CompletionException && ex.getCause() != null) {
77-
ex = ex.getCause();
78-
}
79-
80-
if (ex instanceof VMDisconnectedException) {
81-
// mark it success to avoid reporting error on VSCode.
82-
response.success = true;
83-
sendMessage(response);
84-
} else {
85-
sendMessage(AdapterUtils.setErrorResponse(response,
86-
ErrorCode.UNKNOWN_FAILURE,
87-
ex.getMessage() != null ? ex.getMessage() : ex.toString()));
88-
}
89-
} else {
90-
logger.log(Level.SEVERE, "The request dispatcher should not return null response.");
91-
sendMessage(AdapterUtils.setErrorResponse(response,
92-
ErrorCode.UNKNOWN_FAILURE,
93-
"The request dispatcher should not return null response."));
94-
}
95-
}
96-
}).whenComplete((r, e) -> {
68+
debugAdapter.dispatchRequest(request).thenAccept(this::sendMessage).exceptionally(e -> {
9769
if (e != null) {
98-
logger.log(Level.SEVERE, "Unexpected exception occurs when sending message to VSCode: %s" + e.getMessage());
70+
logger.log(Level.SEVERE, "Unexpected exception occurs when processing message to VSCode: %s" + e.getMessage());
9971
}
72+
return null;
10073
});
10174
}
10275

0 commit comments

Comments
 (0)