Hi Checking the spec section 3.2.7.3, it says this:
*"...EditableValueHolder is a source of ValueChangeEvent, PreValidateEvent and PostValidate events. These are emitted during calls to validate(), which happens during the Process Validations phase of the request processing lifecycle. 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...."* If the text is taken literally, we should call them inside validate() method (myfaces is doing this right now), but the common sense says we should publish this events from outside ( UIInput.processDecodes() and UIInput.processValidators() ) because if we override validate() method, the event publishing just get lost. The javadoc should mention on UIInput.processDecodes(), UIInput.processValidators() or UIInput.validate() that those listeners should be called from there. regards Leonardo Uribe