[richfaces-issues] [JBoss JIRA] (RF-12343) Problem when saving form with rich picklist inside composite component

Pavol Pitonak (JIRA) jira-events at lists.jboss.org
Thu Sep 27 11:18:03 EDT 2012


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

Pavol Pitonak closed RF-12343.
------------------------------



I created a reproducer in Metamer http://localhost:8080/metamer/faces/components/richPickList/cc.xhtml
                
> Problem when saving form with rich picklist inside composite component
> ----------------------------------------------------------------------
>
>                 Key: RF-12343
>                 URL: https://issues.jboss.org/browse/RF-12343
>             Project: RichFaces
>          Issue Type: Enhancement
>      Security Level: Public(Everyone can see) 
>          Components: component-selects
>    Affects Versions: 4.2.2.Final
>         Environment: Windows, FireFox13.0.1, Tomcat7.0.26, JSF2.1.7
>            Reporter: Christophe Roussy
>            Assignee: Brian Leathem
>              Labels: composite_component, pickList
>             Fix For: 4.2.3.CR1, 4.3.0.Milestone2
>
>
> I have trouble passing a list to a rich picklist value which is located inside a composite component, my value is an ArrayList.
> My bean is in viewscope.
> The problem occurs while submitting the form:
> {code}
> javax.faces.FacesException: ModelType (class java.lang.Object) must be either an Array, or a Collection
>     at org.richfaces.renderkit.SelectManyHelper.getConvertedValue(SelectManyHelper.java:332)
>     at org.richfaces.renderkit.SelectManyRendererBase.getConvertedValue(SelectManyRendererBase.java:108)
>     at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
>     at javax.faces.component.UIInput.validate(UIInput.java:960)
>     at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
>     at javax.faces.component.UIInput.processValidators(UIInput.java:698)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIForm.processValidators(UIForm.java:253)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
>     at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
>     at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
>     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>     at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>     at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>     at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
>     at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
>     at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
>     at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:137)
>     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
>     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
>     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
>     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
>     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
>     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
>     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
>     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     at java.lang.Thread.run(Thread.java:662)
> {code}
> Sample code:
> {code}
> ...
> <composite:attribute name="beanAndValue" />
> ...
> <rich:pickList value="#{cc.attrs.beanAndValue}" ...
> {code}
> I tried adding a type java.util.Collection, or java.util.List, but this had no effect.
> Note that it works when the picklist is outside of the composite component.
> It also works with an h:selectOneMenu works with similar code:
> I have NO trouble passing a list to the value of h:selectOneMenu !
> {code}
> ...
> <composite:attribute name="beanAndValue" />
> ...
> <h:selectOneMenu value="#{cc.attrs.beanAndValue}" ...
> {code}
> As this works outside the composite component and with similar components (selectOneMenu), I assume that the rich:pickList is not easy to integrate with composite components for some type issue, maybe the type gets lost and the picklist is very strict about it ?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list