Race Condition: MCP-Server akzeptiert Requests vor Import-Ende #28

Closed
opened 2026-03-08 09:25:45 +00:00 by automation · 1 comment
Collaborator

Problem

HeadlessApplication.start() startet den MCP-Server sofort und importiert Projekte in einem Daemon-Thread. Wenn ein Request kommt WÄHREND der Import noch läuft, sind die Projekte unvollständig.

Betroffener Code

HeadlessApplication.java — Daemon-Thread für Import (Zeile 47-65)

Auswirkung

  • jdt_list_projects kann 0 zurückgeben wenn Import noch läuft
  • jdt_rename_element kann Elemente nicht finden
  • Alle Tools die Projekte brauchen können fehlschlagen

Vorgeschlagener Fix

Entweder:

  1. Import synchron ausführen bevor MCP-Server antwortet
  2. Oder: Readiness-Gate einbauen das erst "ready" meldet wenn Import fertig ist
  3. Oder: Tools prüfen ob Import läuft und warten

Kontext

Identifiziert bei der Analyse von #26 durch Agent jdt-duft (Markus Duft).

## Problem `HeadlessApplication.start()` startet den MCP-Server **sofort** und importiert Projekte in einem Daemon-Thread. Wenn ein Request kommt WÄHREND der Import noch läuft, sind die Projekte unvollständig. ## Betroffener Code `HeadlessApplication.java` — Daemon-Thread für Import (Zeile 47-65) ## Auswirkung - `jdt_list_projects` kann 0 zurückgeben wenn Import noch läuft - `jdt_rename_element` kann Elemente nicht finden - Alle Tools die Projekte brauchen können fehlschlagen ## Vorgeschlagener Fix Entweder: 1. Import synchron ausführen bevor MCP-Server antwortet 2. Oder: Readiness-Gate einbauen das erst "ready" meldet wenn Import fertig ist 3. Oder: Tools prüfen ob Import läuft und warten ## Kontext Identifiziert bei der Analyse von #26 durch Agent jdt-duft (Markus Duft).
Author
Collaborator

Fixed in 2dc6291 — readiness gate via CountDownLatch blocks all tools (except jdt_get_version, jdt_list_projects, jdt_import_project) until import and build are complete. 300s timeout.

Fixed in `2dc6291` — readiness gate via `CountDownLatch` blocks all tools (except `jdt_get_version`, `jdt_list_projects`, `jdt_import_project`) until import and build are complete. 300s timeout.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-tools/jdt-mcp-server#28
No description provided.