[ http://issues.apache.org/jira/browse/MYFACES-256?page=all ]
updated MYFACES-256: --------------------- > aliasBean saves its children when parent has rendered="false" > ------------------------------------------------------------- > > Key: MYFACES-256 > URL: http://issues.apache.org/jira/browse/MYFACES-256 > Project: MyFaces Core > Type: Bug > Versions: 1.0.9m9 > Reporter: Martin Zdila > Assignee: Sylvain Vieujot > > Hello > <h:panelGroup rendered="#{tableColumnForm.inputTypeName == 'label'}"> > <x:aliasBean alias="#{holder}" > value="#{tableColumnForm.inputType.visualDefinition}"> > <f:subview id="inputTypeLabelVisualDefinition"> > <jsp:include page="/inc/fontPicker.jsp" /> > </f:subview> > </x:aliasBean> > </h:panelGroup> > This JSF code causes exception although #{tableColumnForm.inputTypeName == > 'label'} (rendered) is false: > javax.faces.el.PropertyNotFoundException: Bean: > com.kovine.kfe.dao.InputTypeCheckbox, property: visualDefinition > at > org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:464) > at > org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:435) > at > org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:398) > at > org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:104) > at > org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:555) > at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145) > at > org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:441) > at > org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:270) > at > org.apache.myfaces.custom.aliasbean.AliasBean.makeAlias(AliasBean.java:249) > at > org.apache.myfaces.custom.aliasbean.AliasBean.processSaveState(AliasBean.java:145) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:466) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:466) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:466) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:466) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:454) > at > javax.faces.component.UIComponentBase.processSaveState(UIComponentBase.java:466) > at > org.apache.myfaces.application.jsp.JspStateManagerImpl.getComponentStateToSave(JspStateManagerImpl.java:106) > at > org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:249) > at org.apache.myfaces.taglib.core.ViewTag.doEndTag(ViewTag.java:141) > at > org.apache.jsp.pages.tableColumnForm_jsp._jspx_meth_f_view_0(tableColumnForm_jsp.java:341) > nForm_jsp.java:341) > The expression #{tableColumnForm.inputType.visualDefinition} should be > evaluated only if inputType is of type "label" (then > #{tableColumnForm.inputTypeName == 'label'}). AliasBean tries to save state > of all its children without regard if they are (was) rendered or not. In my > case, if #{tableColumnForm.inputTypeName == 'label'} is false, then > #{tableColumnForm.inputType} doesn't contain "visualDefinition" property > (because it contains reference to another object in that moment) and that > causes an exception. If I replace x:aliasBean tag to eg. <h:outputText > value="#{tableColumnForm.inputType.visualDefinition.fontFace}" /> then it > doesn't throw the exception although #{tableColumnForm.inputType} doesn't > contain "visualDefinition" property. > So, in short: aliasBean should not save state of its children when its parent > is not rednered (because its children could contain references to for example > not existing properties). > I hope my explanation is enough clear. If not, please notify me (in the > comment). > Thanks in advance for your effort > Martin -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
