From 59cebe0543d6162fe292d0078433579c13dd64d7 Mon Sep 17 00:00:00 2001 From: codeboyzhou Date: Fri, 30 May 2025 18:26:51 +0800 Subject: [PATCH] Improve error handling for message enqueue failure - Update sendMessage method to provide more detailed error information - Remove unnecessary imports and improve code readability --- .../server/transport/StdioServerTransportProvider.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/mcp/src/main/java/io/modelcontextprotocol/server/transport/StdioServerTransportProvider.java b/mcp/src/main/java/io/modelcontextprotocol/server/transport/StdioServerTransportProvider.java index 819da977..f6a98f13 100644 --- a/mcp/src/main/java/io/modelcontextprotocol/server/transport/StdioServerTransportProvider.java +++ b/mcp/src/main/java/io/modelcontextprotocol/server/transport/StdioServerTransportProvider.java @@ -9,9 +9,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; -import java.io.Reader; import java.nio.charset.StandardCharsets; -import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; @@ -148,14 +146,12 @@ public StdioMcpSessionTransport() { @Override public Mono sendMessage(McpSchema.JSONRPCMessage message) { - return Mono.zip(inboundReady.asMono(), outboundReady.asMono()).then(Mono.defer(() -> { - if (outboundSink.tryEmitNext(message).isSuccess()) { + Sinks.EmitResult result = outboundSink.tryEmitNext(message); + if (result.isSuccess()) { return Mono.empty(); } - else { - return Mono.error(new RuntimeException("Failed to enqueue message")); - } + return Mono.error(new RuntimeException("Failed to enqueue message: " + message + ", due to " + result)); })); }