Zentrale Argument-Validierung / ArgParser für Tool-Handler #57

Open
opened 2026-03-08 18:39:07 +00:00 by automation · 0 comments
Collaborator

Problem

Required-Parameter werden nicht server-seitig validiert. Bei fehlenden Parametern tritt eine NullPointerException auf statt einer klaren Fehlermeldung:

(String) args.get("filePath")                    // NPE wenn null
((Number) args.get("startOffset")).intValue()     // NPE wenn null
args.get("preview") != null ? (Boolean) args.get("preview") : false  // 15 Varianten

Das required-Array in der JsonSchema hilft nur bei Client-seitiger Validierung.

Vorschlag

ArgParser-Helper:

ArgParser.string(args, "filePath")           // wirft klare Fehlermeldung
ArgParser.intRequired(args, "offset")        // wirft klare Fehlermeldung
ArgParser.boolOrDefault(args, "preview", false)

Optional: McpProtocolHandler validiert Required-Felder aus dem Schema bevor der Handler aufgerufen wird.

Gefunden von

Starke, Fowler, Rupp (3/5 übereinstimmend)

## Problem Required-Parameter werden nicht server-seitig validiert. Bei fehlenden Parametern tritt eine `NullPointerException` auf statt einer klaren Fehlermeldung: ```java (String) args.get("filePath") // NPE wenn null ((Number) args.get("startOffset")).intValue() // NPE wenn null args.get("preview") != null ? (Boolean) args.get("preview") : false // 15 Varianten ``` Das `required`-Array in der `JsonSchema` hilft nur bei Client-seitiger Validierung. ## Vorschlag `ArgParser`-Helper: ```java ArgParser.string(args, "filePath") // wirft klare Fehlermeldung ArgParser.intRequired(args, "offset") // wirft klare Fehlermeldung ArgParser.boolOrDefault(args, "preview", false) ``` Optional: `McpProtocolHandler` validiert Required-Felder aus dem Schema bevor der Handler aufgerufen wird. ## Gefunden von Starke, Fowler, Rupp (3/5 übereinstimmend)
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#57
No description provided.