Description
This issue was open long time ago as:
http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-537
but on the way we forgot it. There is no changes on the spec, but section 3.2.7.3 says this:
"... The PreValidateEvent is published immediately before the component gets validated. PostValidate is published after validation has occurred, regardless if the validation was successful or not. If the validation for the component did pass successfully, and the previous value of this component differs from the current value, the ValueChangeEvent is published. ..."
The problem we had was the code implemented did not match the spec, but finally it was corrected. Here is the mail notifying the change:
[jsr-314-open] [537-PrePostValidate] RESOLVED (was: Re: [2.1 Spec Review] Pre/PostValidateEvent publishing conditions)
DG> The only reason I can think of is that UIData is also (potentially,
DG> anyway) a container of inputs. But so are panels, and they,
DG> evidently, are excluded. Why?
EB> No, it does not mean that only those components will deliver those
EB> events. It means that in the case of components who are iterating
EB> components, the event must be published before, or after, the child
EB> component processing. This is true for any components that have
EB> children. I will revise the documentation to be as follows.
EB>
EB> PostValidateEvent
EB>
EB> Components with children must publish this event after processing their
EB> child nodes in processValidators. This is especially important for
EB> iterating components such as UIData and form components, such as UIForm.
EB>
EB> PreValidateEvent
EB>
EB> Components with children must publish this before after processing their
EB> child nodes in processValidators. This is especially important for
EB> iterating components such as UIData and form components, such as UIForm.
Anyway we have to notify the EG about the javadoc does not include this detail and fix it into our codebase.