File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
engine/src/main/java/org/hibernate/validator/internal/engine/constraintvalidation Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 20
20
import javax .validation .ConstraintViolation ;
21
21
import javax .validation .ValidationException ;
22
22
23
+ import org .hibernate .validator .constraintvalidation .HibernateConstraintValidator ;
23
24
import org .hibernate .validator .internal .engine .ValidationContext ;
24
25
import org .hibernate .validator .internal .engine .ValueContext ;
25
26
import org .hibernate .validator .internal .metadata .descriptor .ConstraintDescriptorImpl ;
@@ -120,7 +121,13 @@ private ValidationException getExceptionForNullValidator(Type validatedValueType
120
121
validator = constraintValidatorForDefaultConstraintValidatorFactory ;
121
122
if ( validator == null ) {
122
123
validator = getInitializedConstraintValidator ( validationContext );
123
- constraintValidatorForDefaultConstraintValidatorFactory = validator ;
124
+
125
+ // HibernateConstraintValidator instances should not be cached within this constraint tree instance, only ConstraintValidatorManager
126
+ // should handle their caching. That's because the HibernateConstraintValidatorInitializationContext influences their caching behaviour.
127
+ // (HibernateConstraintValidatorInitializationContext could have changed during a ValidatorFactory lifetime - via usingContext())
128
+ if ( !( validator instanceof HibernateConstraintValidator ) ) {
129
+ constraintValidatorForDefaultConstraintValidatorFactory = validator ;
130
+ }
124
131
}
125
132
}
126
133
}
You can’t perform that action at this time.
0 commit comments