On Mon, Jan 21, 2013 at 10:03 AM, Gunnar Morling <gunnar@hibernate.org> wrote:
2013/1/21 Matt Benson <mbenson@apache.org>

On Mon, Jan 21, 2013 at 9:17 AM, Hardy Ferentschik <hardy@hibernate.org> wrote:
On 21 Jan 2013, at 3:36 PM, Gunnar Morling <gunnar@hibernate.org> wrote:

> I'm wondering whether it's legal that one constraint gets validated more than once during one validation operation. The spec seems a bit contradictory in this regard.
>
> In section 4.6 "Validation routine" [1] it says:
>
> "[...] this implies that a given validation constraint will not be processed more than once per validation."
>
> Section 4.6.1 "Object graph validation" says though:
>
> "[...] object graph navigation can lead to multiple validations of the same constraint and the same object instance but the set of constraint validation is deterministic and the algorithm prevents infinite loops."
>
> What is right here? Or is this to say that *only* during graph validation a constraint may be validated multiple times but not e.g. during validation of multiple groups, all of which a constraint is part of?

If you are just validating a single bean every constraint can only be validated once. However, when you are dealing with object graphs a constraint can be validated once per path on which you reach it.
So both sentences make sense in their context, but taken together there seems to be a contradiction. Maybe the first statement could just be removed?

 
My read of these sections yields an understanding that, during any validation call, the same validated object/constraint pair must be evaluated only once.  I seem to be in agreement with Hardy here.

I'm confused, you say each object/constraint may only be validated once, while Hardy said that during graph validation the same object/constraint actually may be validated several times. So did you want to say you *dis*agree with what Hardy said?

Okay, reading Hardy more closely, he said "a constraint can be validated once per path on which you reach it."  The spec also says "To prevent infinite loops, the Bean implementation must ignore the cascading operation if the object instance has already been validated in the current path (starting from the root object)."  I mistakenly oversimplified Hardy's statement to take this into account.  My point is, you can validate the same *constraint* as many times as it is encountered, as long as each encounter refers to a different validated object instance.  That's how I understand the language used.

Matt
 

--Gunnar
 


Matt
 
--Hardy



_______________________________________________
beanvalidation-dev mailing list
beanvalidation-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/beanvalidation-dev


_______________________________________________
beanvalidation-dev mailing list
beanvalidation-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/beanvalidation-dev



_______________________________________________
beanvalidation-dev mailing list
beanvalidation-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/beanvalidation-dev