From 201885a242358623e9257a4b16538536894aa913 Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Wed, 20 Mar 2024 23:05:38 +0900 Subject: [PATCH] Fix target in BindValidationFailureAnalyzer See gh-40035 --- .../analyzer/BindValidationFailureAnalyzer.java | 4 ++-- .../analyzer/BindValidationFailureAnalyzerTests.java | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzer.java index 07703a1860e..c88cc62907e 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzer.java @@ -47,9 +47,9 @@ class BindValidationFailureAnalyzer extends AbstractFailureAnalyzer { private ExceptionDetails getBindValidationExceptionDetails(Throwable rootFailure) { BindValidationException validationException = findCause(rootFailure, BindValidationException.class); if (validationException != null) { - BindException target = findCause(rootFailure, BindException.class); + BindException bindException = findCause(rootFailure, BindException.class); List errors = validationException.getValidationErrors().getAllErrors(); - return new ExceptionDetails(errors, target, validationException); + return new ExceptionDetails(errors, bindException.getTarget().getType(), validationException); } org.springframework.validation.BindException bindException = findCause(rootFailure, org.springframework.validation.BindException.class); diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzerTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzerTests.java index 237b3e5c8f8..b753d1baf46 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzerTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/diagnostics/analyzer/BindValidationFailureAnalyzerTests.java @@ -63,9 +63,11 @@ class BindValidationFailureAnalyzerTests { @Test void bindExceptionWithFieldErrorsDueToValidationFailure() { FailureAnalysis analysis = performAnalysis(FieldValidationFailureConfiguration.class); - assertThat(analysis.getDescription()).contains(failure("test.foo.foo", "null", "must not be null")); - assertThat(analysis.getDescription()).contains(failure("test.foo.value", "0", "at least five")); - assertThat(analysis.getDescription()).contains(failure("test.foo.nested.bar", "null", "must not be null")); + assertThat(analysis.getDescription()).contains(failure("test.foo.foo", "null", "must not be null")) + .contains(failure("test.foo.value", "0", "at least five")) + .contains(failure("test.foo.nested.bar", "null", "must not be null")) + .contains( + "Binding to target org.springframework.boot.diagnostics.analyzer.BindValidationFailureAnalyzerTests$FieldValidationFailureProperties failed:"); } @Test