Numerous warnings abound in ConstraintViolation due to the fact that ConstraintValidationListener must be used as a raw type. Further the GroupValidationContext must be cast to a BeanValidationContext so that the listener reference can be reset, which doesn't feel optimal either. The attached patch:
- Modifies GroupValidationContext<T> such that, rather than extending ValidationContext<T> where T extends ValidationListener, it instead expressly implements ValidationContext<ConstraintValidationListener<T>> (T is now effectively the same type variable as ConstraintValidationListener<T>). Now GroupValidationContext.getListener() expressly returns a ConstraintValidationListener.
- Adds state management for @ReportAsSingleViolation composed constraints to ConstraintValidationListener so that the original listener instance can be used throughout.
- The reportAsSingle execution path bails as soon as it is known that a composing constraint has failed.
|Status||Resolved [ 5 ]||Closed [ 6 ]|
|Resolution||Fixed [ 1 ]|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Fix Version/s||0.2-incubating [ 12314850 ]|
|Assignee||Carlos Vara [ carlos.vara ]|
|Field||Original Value||New Value|
|Attachment||BVAL-78.patch.txt [ 12449104 ]|