[ 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