|
17 | 17 | import reactor.core.Disposable; |
18 | 18 | import reactor.core.publisher.Mono; |
19 | 19 | import reactor.core.publisher.MonoSink; |
| 20 | +import reactor.core.scheduler.Schedulers; |
20 | 21 |
|
21 | 22 | /** |
22 | 23 | * Default implementation of the MCP (Model Context Protocol) session that manages |
@@ -135,18 +136,18 @@ public DefaultMcpSession(Duration requestTimeout, McpTransport transport, |
135 | 136 | } |
136 | 137 | else if (message instanceof McpSchema.JSONRPCRequest request) { |
137 | 138 | logger.debug("Received request: {}", request); |
138 | | - handleIncomingRequest(request).subscribe(response -> transport.sendMessage(response).subscribe(), |
139 | | - error -> { |
140 | | - var errorResponse = new McpSchema.JSONRPCResponse(McpSchema.JSONRPC_VERSION, request.id(), |
141 | | - null, new McpSchema.JSONRPCResponse.JSONRPCError( |
142 | | - McpSchema.ErrorCodes.INTERNAL_ERROR, error.getMessage(), null)); |
143 | | - transport.sendMessage(errorResponse).subscribe(); |
144 | | - }); |
| 139 | + handleIncomingRequest(request).subscribeOn(Schedulers.boundedElastic()) |
| 140 | + .subscribe(response -> transport.sendMessage(response).subscribe(), error -> { |
| 141 | + var errorResponse = new McpSchema.JSONRPCResponse(McpSchema.JSONRPC_VERSION, request.id(), null, |
| 142 | + new McpSchema.JSONRPCResponse.JSONRPCError(McpSchema.ErrorCodes.INTERNAL_ERROR, |
| 143 | + error.getMessage(), null)); |
| 144 | + transport.sendMessage(errorResponse).subscribe(); |
| 145 | + }); |
145 | 146 | } |
146 | 147 | else if (message instanceof McpSchema.JSONRPCNotification notification) { |
147 | 148 | logger.debug("Received notification: {}", notification); |
148 | | - handleIncomingNotification(notification).subscribe(null, |
149 | | - error -> logger.error("Error handling notification: {}", error.getMessage())); |
| 149 | + handleIncomingNotification(notification).subscribeOn(Schedulers.boundedElastic()) |
| 150 | + .subscribe(null, error -> logger.error("Error handling notification: {}", error.getMessage())); |
150 | 151 | } |
151 | 152 | })).subscribe(); |
152 | 153 | } |
|
0 commit comments