[ 
https://jira.jboss.org/jira/browse/RF-3920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nick Belaevski updated RF-3920:
-------------------------------

    Fix Version/s: 3.2.2
         Assignee: Alexander Smirnov  (was: Nick Belaevski)


> graphValidator: java.lang.IllegalArgumentException in case using 
> rich:graphValidator for h:panelGrid.
> -----------------------------------------------------------------------------------------------------
>
>                 Key: RF-3920
>                 URL: https://jira.jboss.org/jira/browse/RF-3920
>             Project: RichFaces
>          Issue Type: Bug
>    Affects Versions: 3.2.2
>         Environment: IE6, IE7, FF 3.0, Safari 3.1, Opera 9.5(3.2.2.BETA1)
>            Reporter: Mikhail Vitenkov
>            Assignee: Alexander Smirnov
>            Priority: Critical
>             Fix For: 3.2.2
>
>
> Step 1. Add panelGrid with validated inputs, surround it with 
> rich:graphValidator:
> <rich:graphValidator value="#{graphValidator}">
>       <h:panelGrid columns="2" border="2" id="panelGridID">
>       
>               <h:outputLabel for="mailValue" value="Mail validation:" />
>               <h:panelGroup>
>               <h:inputText value="#{validator.mailValue}" id="mailValue">
>                       <rich:ajaxValidator 
> event="onchange"></rich:ajaxValidator>
>               </h:inputText>
>               <rich:message for="mailValue" showDetail="true" 
> showSummary="true" />
>               </h:panelGroup>
>               
>               <h:outputLabel for="creditValue" value="CreditCard validation:" 
> />
>               <h:panelGroup>
>               <h:inputText value="#{validator.creditValue}" id="creditValue">
>                       <rich:ajaxValidator 
> event="onchange"></rich:ajaxValidator>
>               </h:inputText>
>               <rich:message for="creditValue" showDetail="true" 
> showSummary="true" />
>               </h:panelGroup>
>               
>               <h:outputText value="total length should be less than 25" />
>               <a4j:commandButton value="validate all fields" 
> reRender="panelGridID"></a4j:commandButton>              
>       </h:panelGrid>
> //Graph validator validates total length of all(2) inputs placed in panelGrid.
> Step 2. Add bean "validator":
> public class ValidatorBean implements TestValidable{
>       @Email(message="Mail validation failed!")
>       private String mailValue;
>       @CreditCardNumber(message="CreditCard validation failed!")
>       private String creditValue;
>       public ValidatorBean(){
>               this.mailValue = "";
>               this.creditValue = "";
>       }       
> Getters & setters for 'mailValue' & 'creditValue'
> Step 3. Add "graphValidator" bean:
> public class GraphValidatorBean {
>       private final List beans;
>       
>       @Valid
>       public List getBeans() {
>               return beans;
>       }
>       
>       public GraphValidatorBean() {
>               beans = new ArrayList(1);
>               beans.add(new ValidatorBean());                         
>       }
>       @Max(value=25,message="total length > 25")
>       @Min(value=10,message="total length < 10")
>       public int getTotal(){
>               int total = 0;          
>               for (Object bean : beans) {
>                     ValidatorBean vBean = (ValidatorBean) bean;
>                               total += vBean.getMailValue().toString.length() 
> + vBean.getCreditValue().toString().length();                   
>               }
>               return total;
>       }
> }
> Step 4. Navigate on the page, contained tested validators.
> Step 5. Input values, valid for ajaxValidator & press "validate all fields" 
> button.
> Actual behavior:
> Error occurs:
> java.lang.IllegalArgumentException: XClass not coming from this 
> ReflectionManager implementation
>       at 
> org.hibernate.annotations.common.reflection.java.JavaReflectionManager.toClass(JavaReflectionManager.java:66)
>       at 
> org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:142)
>       at 
> org.hibernate.validator.ClassValidator.createChildValidator(ClassValidator.java:296)
>       at 
> org.hibernate.validator.ClassValidator.initValidator(ClassValidator.java:218)
>       at 
> org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:133)
>       at 
> org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:104)
>       at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:96)
>       at 
> org.richfaces.validator.BeanValidator.createValidator(BeanValidator.java:272)
>       at 
> org.richfaces.validator.BeanValidator.getValidator(BeanValidator.java:238)
>       at 
> org.richfaces.validator.BeanValidator.validateGraph(BeanValidator.java:177)
>       at 
> org.richfaces.component.UIGraphValidator.processUpdates(UIGraphValidator.java:87)
>       at 
> javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:678)
>       at 
> javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:678)
>       at 
> javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:678)
>       at javax.faces.component.UIForm.processUpdates(UIForm.java:91)
>       at 
> org.ajax4jsf.component.AjaxViewRoot$2.invokeContextCallback(AjaxViewRoot.java:412)
>       at 
> org.ajax4jsf.component.ContextCallbackWrapper.invokeContextCallback(ContextCallbackWrapper.java:24)
>       at 
> org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:235)
>       at 
> org.ajax4jsf.component.AjaxViewRoot.processUpdates(AjaxViewRoot.java:428)
>       at 
> org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelValuesExecutor.java:33)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
>       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:265)
>       at 
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:376)
>       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:503)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>       at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
richfaces-issues mailing list
richfaces-issues@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to