Client request handlers that complete empty send no JSON-RPC response
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
Direzione di ricerca
Inizia con McpClientSession e il test di regressione McpClientSessionTests.testEmptyRequestHandlerSendsErrorResponse, usando MockMcpClientTransport per riprodurre il caso dell’handler vuoto. Traccia il dispatch delle richieste JSON-RPC in ingresso e verifica che Mono.empty() produca una risposta di errore JSON-RPC con l’ID della richiesta test-id e il codice -32603.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Bug description
When a server sends a request to a Java SDK client, an asynchronous sampling or elicitation handler can return Mono.empty(). McpClientSession then sends no JSON-RPC response, so the server waits until its request timeout.
JSON-RPC 2.0 requires a response for every request with an ID. An empty handler completion should produce an error response with the original request ID.
This is the client-side counterpart to https://github.com/modelcontextprotocol/java-sdk/issues/1081. The open fix at https://github.com/modelcontextprotocol/java-sdk/pull/1099 changes only server-side dispatch paths.
Environment
- Java SDK v2.0.1, commit
c7e1cfe90edcd9cbe030924310a194dc5492eab2 - Java SDK main, commit
39c225e46c51311eaf82192f15b950e421580fb5 - Temurin 25.0.3, compiling with the repository's Java 17 target
Steps to reproduce
Register a client request handler that returns Mono.empty(), then deliver a JSON-RPC request with an ID:
var transport = new MockMcpClientTransport();
var session = new McpClientSession(TIMEOUT, transport,
Map.of("test.method", params -> Mono.empty()), Map.of(), Function.identity());
transport.simulateIncomingMessage(new McpSchema.JSONRPCRequest("test.method", "test-id"));
assertThat(transport.getLastSentMessage()).isInstanceOf(McpSchema.JSONRPCResponse.class);
Both v2.0.1 and main fail because getLastSentMessage() is null:
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
Expecting actual not to be null
Expected behavior
The client sends one JSON-RPC error response with ID test-id and code -32603.
Minimal Complete Reproducible example
The regression test is in McpClientSessionTests.testEmptyRequestHandlerSendsErrorResponse.
- Lingua principale
- Java
- Stelle
- 3.7k
- Fork
- 1.1k
- Merge medio
- 1g 15h
- PR unite (30g)
- 9
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/java-sdk
-
area/transport bug P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
modelcontextprotocol/java-sdk#1136 ·
-
ServerCapabilities.logging is added unconditionally, overriding the caller's explicit capabilities Apertabug P2 ready for work
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/java-sdk#1086 · 1 commento ·
-
enhancement good first issue P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
modelcontextprotocol/java-sdk#1067 ·
-
bug P2 ready for work
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
modelcontextprotocol/java-sdk#898 · 1 commento ·
-
documentation P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
modelcontextprotocol/java-sdk#798 · 1 commento ·
Tutte le issue di modelcontextprotocol/java-sdk
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Two open-case totals on one screen: the Programs tile says 15,858 and the nav badge says 15,868 Apertabug frontend maui-pilot
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
objectionary/eo-graphs#74 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100