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.

Reply via email to