Hi guys,
  I believe I have found a serious issue.  In section 4.2, the structure of a 
set of Path.Nodes is described almost as a footnote to the section describing 
ConstraintViolation.  On rereading this section my interpretation is that 
bval-jsr303 currently implements association traversals precisely backward to 
the letter of the specification.  I am quite shocked that we can pass the TCK 
like this, but hopefully this means the TCK tests are simply string-based, 
since the alternative situation would be that the RI, which presumably passes 
the TCK, is flawed in a similar way to the Apache implementation.  I'd also be 
glad to be educated on why I am mistaken.  My issue is this:

The spec says that a constraint on the fourth author (i.e. "authors[3]") would 
be represented by a not-in-iterable "authors" node followed by a nameless node 
with index 3.  PathImpl would represent this as a single "authors" node with 
index 3.

Likewise, the spec says that a constraint on the first author's company 
("authors[0].company") would be represented by a not-in-iterable "authors" node 
followed by a "company" node with index 0.  PathImpl represents this as an 
"authors" node with index 3, followed by a not-in-iterable "company" node.

I wholeheartedly believe I have discovered a bona fide problem here and will 
begin working to fix it.  Unless I am looking at the wrong specification I 
can't imagine how I could be mistaken here, but please review and let me know 
if I am in fact mistaken.

Thanks,
Matt

Reply via email to