From c49241c8549612f2b1d0ab1384a54dbe4196e8b9 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Wed, 8 Oct 2025 01:04:47 +0200 Subject: [PATCH] fix: Avoid NPE in McpClientSession --- .../io/modelcontextprotocol/spec/McpClientSession.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpClientSession.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpClientSession.java index 0ba7ab3b8..109ac0dbf 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpClientSession.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpClientSession.java @@ -283,7 +283,15 @@ public Mono sendRequest(String method, Object requestParams, TypeRef t deliveredResponseSink.complete(); } else { - deliveredResponseSink.next(this.transport.unmarshalFrom(jsonRpcResponse.result(), typeRef)); + var result = jsonRpcResponse.result(); + var unmarshalled = this.transport.unmarshalFrom(result, typeRef); + // https://github.com/modelcontextprotocol/java-sdk/issues/605 + if (unmarshalled != null) + deliveredResponseSink.next(unmarshalled); + else + // NB: next() cannot be called with null + deliveredResponseSink + .error(new IllegalStateException("Failed to unmarshal response: " + jsonRpcResponse)); } } });