[ 
https://issues.apache.org/jira/browse/TOMAHAWK-1276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605301#action_12605301
 ] 

David Waters commented on TOMAHAWK-1276:
----------------------------------------

Thanks Leonardo,
Thanks for the quick noticing and dealing with this bug, and thanks for raising 
MYFACES-1882 I was not sure which project to raise this bug against.

Thank you,

David

> validator property not fireing validator method
> -----------------------------------------------
>
>                 Key: TOMAHAWK-1276
>                 URL: https://issues.apache.org/jira/browse/TOMAHAWK-1276
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Validators
>    Affects Versions: 1.1.6
>         Environment: WinXp, MyFaces 1.2.3, Tomcat 6.0.14, Java jdk1.6.0_03, 
> JSF On JSP
>            Reporter: David Waters
>            Assignee: Leonardo Uribe
>            Priority: Critical
>
> on at least t:inputHidden the validator has no effect.
> Simple Example
> <[EMAIL PROTECTED] pageEncoding="UTF-8" contentType="text/html; 
> charset=UTF-8" %>
> <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f"%>
> <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h"%>
> <%@ taglib uri="http://myfaces.apache.org/tomahawk"; prefix="t"%>
> <f:view>
>       <html>
>               <head></head>
>               <body>
>                       <h:form id="testForm">
>                               <h:messages />
>                               <t:inputHidden value="123321" 
> id="tomHiddenField" validator="#{test.tomNeverValid}" required="true" />
>                               <h:inputHidden value="123321" 
> id="jsfHiddenField" validator="#{test.jsfNeverValid}" required="true"/>
>                               
>                               <h:commandButton value="Test" id="btn" />       
>                 
>                       </h:form>                       
>               </body> 
>       </html>
> </f:view>
> public class Test{
>       private static final Logger logger = Logger.getLogger(Test.class);
>       public void tomNeverValid(FacesContext context, UIComponent comp, 
> Object value){
>               logger.error("This is never called");
>               throw new ValidatorException(new FacesMessage("This does not 
> show."));
>       }
>       
>       public void jsfNeverValid(FacesContext context, UIComponent comp, 
> Object value){
>               logger.debug("This Jsf Validator Called");
>               throw new ValidatorException(new FacesMessage("This does 
> show."));
>       }
> }
> Actual Behaviour:
> On clicking the button to submit this form only one validation message is 
> display, "This does show" this is produced by the h:inputhidden
> Expected Behaviour:
> On clicking the button to submit this form only both validation message are 
> displayed
> Notes: The h:inputHidden ends up adding a validator to the validators 
> collection not storing the validate express ion directly see
> org.apache.myfaces.taglib.html.HtmlInputHiddenTag.setProperties()
> if (_validator != null)
>   {
>     comp.addValidator(new MethodExpressionValidator(_validator));
> }
> org.apache.myfaces.shared_tomahawk.taglib.UIComponentTagBase.setProperties(..)
> calls 
> org.apache.myfaces.shared_tomahawk.taglib.UIComponentTagUtils.setValidatorProperty(...)
>  stores on calls UIInput.setValidator
> this._validator = validator;
> in UIInput ._validator is not mentioned in saveState or restoreState.
> Note: this functionality worked in MyFaces 1.2.0, upgrading to MyFaces 1.2.3 
> broke this, I belive this will effect all input tags.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to