You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Anonymous (JIRA)" <de...@myfaces.apache.org> on 2006/02/28 11:57:05 UTC

[jira] Updated: (MYFACES-256) aliasBean saves its children when parent has rendered="false"

     [ 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