@@ -294,15 +294,11 @@ public void markCurrentBeanAsProcessed(ValueContext<?, ?> valueContext) {
294294 markCurrentBeanAsProcessedForCurrentPath ( valueContext .getCurrentBean (), valueContext .getPropertyPath () );
295295 }
296296
297- public void addConstraintFailure (ConstraintViolation <T > failingConstraintViolation ) {
298- this .failingConstraintViolations .add ( failingConstraintViolation );
299- }
300-
301297 public Set <ConstraintViolation <T >> getFailingConstraints () {
302298 return failingConstraintViolations ;
303299 }
304300
305- public ConstraintViolation < T > createConstraintViolation (
301+ public void addConstraintFailure (
306302 ValueContext <?, ?> localContext ,
307303 ConstraintViolationCreationContext constraintViolationCreationContext ,
308304 ConstraintDescriptor <?> descriptor
@@ -318,10 +314,10 @@ public ConstraintViolation<T> createConstraintViolation(
318314 // at this point we make a copy of the path to avoid side effects
319315 Path path = PathImpl .createCopy ( constraintViolationCreationContext .getPath () );
320316 Object dynamicPayload = constraintViolationCreationContext .getDynamicPayload ();
321-
317+ ConstraintViolation < T > violation ;
322318 switch ( validationOperation ) {
323319 case PARAMETER_VALIDATION :
324- return ConstraintViolationImpl .forParameterValidation (
320+ violation = ConstraintViolationImpl .forParameterValidation (
325321 messageTemplate ,
326322 constraintViolationCreationContext .getMessageParameters (),
327323 constraintViolationCreationContext .getExpressionVariables (),
@@ -336,8 +332,9 @@ public ConstraintViolation<T> createConstraintViolation(
336332 executableParameters ,
337333 dynamicPayload
338334 );
335+ break ;
339336 case RETURN_VALUE_VALIDATION :
340- return ConstraintViolationImpl .forReturnValueValidation (
337+ violation = ConstraintViolationImpl .forReturnValueValidation (
341338 messageTemplate ,
342339 constraintViolationCreationContext .getMessageParameters (),
343340 constraintViolationCreationContext .getExpressionVariables (),
@@ -352,8 +349,9 @@ public ConstraintViolation<T> createConstraintViolation(
352349 executableReturnValue ,
353350 dynamicPayload
354351 );
352+ break ;
355353 default :
356- return ConstraintViolationImpl .forBeanValidation (
354+ violation = ConstraintViolationImpl .forBeanValidation (
357355 messageTemplate ,
358356 constraintViolationCreationContext .getMessageParameters (),
359357 constraintViolationCreationContext .getExpressionVariables (),
@@ -368,6 +366,8 @@ public ConstraintViolation<T> createConstraintViolation(
368366 dynamicPayload
369367 );
370368 }
369+
370+ this .failingConstraintViolations .add ( violation );
371371 }
372372
373373 public boolean hasMetaConstraintBeenProcessed (Object bean , Path path , MetaConstraint <?> metaConstraint ) {
0 commit comments