[
https://issues.apache.org/jira/browse/TOMEE-4646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Markus Jung updated TOMEE-4646:
-------------------------------
Description:
h2. Description
{{<f:validateWholeBean>}} copies a bean's fields and runs cross-field
validation across them, here checking that two password fields match. On TomEE
the expected "Password fields must match" message never reaches the rendered
page.
Two TCK tests hit this.
{{multiFieldValidation/Spec1IT#testSimpleValidFieldsInvalidBean}} submits a
form where the fields are each individually valid but the bean-level check
should fail, and it asserts the message text appears. That assertion fails.
{{validateWholeBean/Issue4083IT}} goes further: it errors while reading the
message element from the page, because the element with the message is missing
outright, not just empty.
The two tests together point at the same root cause: TomEE's
{{<f:validateWholeBean>}} handling does not surface the class-level
(whole-bean) constraint violation to the component tree the way the reference
implementation does.
h2. Steps to reproduce / TCK reference
Run the Jakarta Faces TCK against TomEE 11 and check these tests:
*
{{ee/jakarta/tck/faces/test/javaee7/multiFieldValidation/Spec1IT.java#testSimpleValidFieldsInvalidBean}}
* {{ee/jakarta/tck/faces/test/javaee8/validateWholeBean/Issue4083IT.java}}
Both are currently excluded in {{runner-standalone/exclusions/faces.txt}} in
the apache/tomee-tck harness repo, under the "Faces whole-bean / cross-field
validation" block. Remove that block once fixed.
was:
h2. Summary
{{<f:validateWholeBean>}} does not emit the "Password fields must match"
message on cross-field validation.
h2. Description
{{<f:validateWholeBean>}} copies a bean's fields and runs cross-field
validation across them, here checking that two password fields match. On TomEE
the expected "Password fields must match" message never reaches the rendered
page.
Two TCK tests hit this.
{{multiFieldValidation/Spec1IT#testSimpleValidFieldsInvalidBean}} submits a
form where the fields are each individually valid but the bean-level check
should fail, and it asserts the message text appears. That assertion fails.
{{validateWholeBean/Issue4083IT}} goes further: it errors while reading the
message element from the page, because the element with the message is missing
outright, not just empty.
The two tests together point at the same root cause: TomEE's
{{<f:validateWholeBean>}} handling does not surface the class-level
(whole-bean) constraint violation to the component tree the way the reference
implementation does.
h2. Steps to reproduce / TCK reference
Run the Jakarta Faces TCK against TomEE 11 and check these tests:
*
{{ee/jakarta/tck/faces/test/javaee7/multiFieldValidation/Spec1IT.java#testSimpleValidFieldsInvalidBean}}
* {{ee/jakarta/tck/faces/test/javaee8/validateWholeBean/Issue4083IT.java}}
Both are currently excluded in {{runner-standalone/exclusions/faces.txt}} in
the apache/tomee-tck harness repo, under the "Faces whole-bean / cross-field
validation" block. Remove that block once fixed.
> Faces <f:validateWholeBean> does not emit cross-field validation message
> ------------------------------------------------------------------------------
>
> Key: TOMEE-4646
> URL: https://issues.apache.org/jira/browse/TOMEE-4646
> Project: TomEE
> Issue Type: Bug
> Reporter: Markus Jung
> Priority: Major
>
> h2. Description
> {{<f:validateWholeBean>}} copies a bean's fields and runs cross-field
> validation across them, here checking that two password fields match. On
> TomEE the expected "Password fields must match" message never reaches the
> rendered page.
> Two TCK tests hit this.
> {{multiFieldValidation/Spec1IT#testSimpleValidFieldsInvalidBean}} submits a
> form where the fields are each individually valid but the bean-level check
> should fail, and it asserts the message text appears. That assertion fails.
> {{validateWholeBean/Issue4083IT}} goes further: it errors while reading the
> message element from the page, because the element with the message is
> missing outright, not just empty.
> The two tests together point at the same root cause: TomEE's
> {{<f:validateWholeBean>}} handling does not surface the class-level
> (whole-bean) constraint violation to the component tree the way the reference
> implementation does.
> h2. Steps to reproduce / TCK reference
> Run the Jakarta Faces TCK against TomEE 11 and check these tests:
> *
> {{ee/jakarta/tck/faces/test/javaee7/multiFieldValidation/Spec1IT.java#testSimpleValidFieldsInvalidBean}}
> * {{ee/jakarta/tck/faces/test/javaee8/validateWholeBean/Issue4083IT.java}}
> Both are currently excluded in {{runner-standalone/exclusions/faces.txt}} in
> the apache/tomee-tck harness repo, under the "Faces whole-bean / cross-field
> validation" block. Remove that block once fixed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)