File tree Expand file tree Collapse file tree 1 file changed +9
-8
lines changed
mcp/src/main/java/io/modelcontextprotocol/spec Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change @@ -225,18 +225,19 @@ private String generateRequestId() {
225
225
public <T > Mono <T > sendRequest (String method , Object requestParams , TypeReference <T > typeRef ) {
226
226
String requestId = this .generateRequestId ();
227
227
228
- return Mono .<McpSchema .JSONRPCResponse >create (sink -> {
228
+ return Mono .deferContextual ( ctx -> Mono . <McpSchema .JSONRPCResponse >create (sink -> {
229
229
this .pendingResponses .put (requestId , sink );
230
230
McpSchema .JSONRPCRequest jsonrpcRequest = new McpSchema .JSONRPCRequest (McpSchema .JSONRPC_VERSION , method ,
231
231
requestId , requestParams );
232
232
this .transport .sendMessage (jsonrpcRequest )
233
- // TODO: It's most efficient to create a dedicated Subscriber here
234
- .subscribe (v -> {
235
- }, error -> {
236
- this .pendingResponses .remove (requestId );
237
- sink .error (error );
238
- });
239
- }).timeout (this .requestTimeout ).handle ((jsonRpcResponse , sink ) -> {
233
+ .contextWrite (ctx )
234
+ // TODO: It's most efficient to create a dedicated Subscriber here
235
+ .subscribe (v -> {
236
+ }, error -> {
237
+ this .pendingResponses .remove (requestId );
238
+ sink .error (error );
239
+ });
240
+ })).timeout (this .requestTimeout ).handle ((jsonRpcResponse , sink ) -> {
240
241
if (jsonRpcResponse .error () != null ) {
241
242
sink .error (new McpError (jsonRpcResponse .error ()));
242
243
}
You can’t perform that action at this time.
0 commit comments