Avoid unsafe casting and object swapping when processing
@ReportAsSingleViolation composed constraints
------------------------------------------------------------------------------------------------------
Key: BVAL-78
URL: https://issues.apache.org/jira/browse/BVAL-78
Project: BeanValidation
Issue Type: Improvement
Components: jsr303
Affects Versions: 0.2-incubating
Reporter: Matt Benson
Attachments: BVAL-78.patch.txt
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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.