From aedccec67efc5512d0e39f5c888dc876625e2d4f Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 5 Dec 2011 22:37:55 +0000 Subject: [PATCH] restored SpringValidatorAdapter's ability to handle bean constraints with property paths (SPR-8895) --- .../validation/beanvalidation/SpringValidatorAdapter.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.springframework.context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java b/org.springframework.context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java index 490fffdebd..7901a0d1db 100644 --- a/org.springframework.context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java +++ b/org.springframework.context/src/main/java/org/springframework/validation/beanvalidation/SpringValidatorAdapter.java @@ -127,8 +127,13 @@ public class SpringValidatorAdapter implements SmartValidator, javax.validation. errors.getObjectName(), errorCodes, errorArgs, violation.getMessage()); } else { + Object invalidValue = violation.getInvalidValue(); + if (!"".equals(field) && invalidValue == violation.getLeafBean()) { + // bean constraint with property path: retrieve the actual property value + invalidValue = bindingResult.getRawFieldValue(field); + } error = new FieldError( - errors.getObjectName(), nestedField, violation.getInvalidValue(), false, + errors.getObjectName(), nestedField, invalidValue, false, errorCodes, errorArgs, violation.getMessage()); } bindingResult.addError(error);