Commits
Tarun Sukhani authored ae08ba56862
fix: route DateTimeParseException through normal-failure log path (PF-75, release 1.12.27) Binder.internalBind has two catch clauses: NumberFormatException/ParseException log at INFO/DEBUG (expected user-input failure), the broad `catch (Exception e)` logs at ERROR with stack trace (maintainer-flagged "bad catch"). DateTimeParseException extends RuntimeException, not java.text.ParseException, so every malformed java.time input from a form was hitting the bad catch and spamming ERROR-level logs with stack traces despite being a normal user error. Adds DateTimeParseException to the first catch clause in both internalBind sites (the primary pipeline at L269 and the collection-binding pipeline at L479). Validation behavior is unchanged — fields still get validation.invalid and controllers still see MISSING. The exception is still absorbed at the framework level; this is purely a log-routing fix. Affects all java.time binders: LocalDate, LocalDateTime, LocalTime (existing) and Instant, ZonedDateTime, OffsetDateTime, OffsetTime, Year, YearMonth, Duration (added in PF-27). Adds an integration regression test in BinderTest exercising the DataWithLocalDate -> malformed input -> validation error path through the full bindBean pipeline. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>