modelcontextprotocol / modelcontextprotocol/java-sdk

DefaultMcpTransportSession#closeGracefully leaks resources on incomplete DELETE response

Aperta
#547 6 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@Kehrlann ci sta già lavorando.

Dal 27/8/2026.

bug P2
Lingua principale
Java
Stelle
3.7k
Fork
1.1k
Merge medio
1g 15h
PR unite (30g)
9

Descrizione

Bug description
When the MCP server is abnormal, the statement this.onClose.apply(this.sessionId.get()) in the closeGracefully method of DefaultMcpTransportSession.java throws an exception, so this.openConnections::dispose is never executed and may leak resources.

Environment
Java version: 21
mcp-bom: 0.11.3

Steps to reproduce
1、Create an McpSyncClient.
2、Execute client.initialize(); client.listTools();
3、Suspend the debugger at client.closeGracefully();
4、Make the MCP server unavailable.
5、Resume execution of client.closeGracefully();

Expected behavior
this.openConnections::dispose should always be executed.

Minimal Complete Reproducible example
McpSyncClient client = McpClient.sync(transport)
.requestTimeout(Duration.ofSeconds(10))
.build();

// Initialize connection
client.initialize();

// List available tools
ListToolsResult tools = client.listTools();

// Close client
client.closeGracefully();

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.