[ 
https://issues.jboss.org/browse/RF-12654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12940936#comment-12940936
 ] 

Brian Leathem commented on RF-12654:
------------------------------------

[~grypho0] thanks for looking into this.  Would you mind preparing this patch 
as a Pull Request?
https://community.jboss.org/wiki/GuideToUsePullRequestsWithGitHubAndJIRA

The best place to land such a pull request would be RichFaces 5.  We can then 
backport the fix to the stable 4.3 branch as appropriate.
https://github.com/richfaces/richfaces

Also, don't forget to sign the CLA:
https://cla.jboss.org/index.seam
                
> PartialViewRender skips check for whether column is rendered before checking 
> if children can be rendered
> --------------------------------------------------------------------------------------------------------
>
>                 Key: RF-12654
>                 URL: https://issues.jboss.org/browse/RF-12654
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.3.0.M2
>         Environment: JBoss 7.1.1.Final
>            Reporter: Ken H
>              Labels: lazy-loaded
>             Fix For: 5-Tracking
>
>
> When using rendered on a component within a rich:column of a rich:dataTable, 
> the EL on the component is executed even if the column is not rendered.
> The expected behavior (per my loose understanding of the JSF spec) would 
> suggest that the traversal should have short-circuited before checking the 
> unrendered column's children.
> This behavior exists at least as far back as 4.1.0.Final.
> Given this minimal example:
> {code}
> <rich:dataTable value="#{bean.foos}" var="foo">
>    <rich:column rendered="false">
>        <h:outputText value="#{foo.bar}" rendered="#{foo.propertyDoesNotExist 
> != null}" />
>    </rich:column>
>    <rich:column>
>        <a4j:commandButton value="Test" action="#{bean.noop}"
>            execute="@this" render="@form" />
>    </rich:column>
> </rich:dataTable>
> {code}
> Clicking the Test button would result in a stack trace similar to the 
> following:
> {code}
>  /index.xhtml @33,96 rendered="#{foo.propertyDoesNotExist != null}": The 
> class 'org.richfaces.tests.Foo' does not have the property 
> 'propertyDoesNotExist'.
>       at 
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
>  [jsf-impl-2.1.7-jbossorg-2.jar:]
>       at 
> javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
>  [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at 
> javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at javax.faces.component.UIComponent.isVisitable(UIComponent.java:1669) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1602) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at 
> org.richfaces.component.UIDataAdaptor$DataVisitorForVisitTree.process(UIDataAdaptor.java:199)
>  [richfaces-components-ui-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:65) 
> [richfaces-core-api-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at org.richfaces.component.UIDataAdaptor.walk(UIDataAdaptor.java:796) 
> [richfaces-components-ui-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.component.UIDataAdaptor.visitDataChildren(UIDataAdaptor.java:1269)
>  [richfaces-components-ui-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.component.UIDataTableBase.visitDataChildren(UIDataTableBase.java:395)
>  [richfaces-components-ui-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.component.UIDataAdaptor.visitTree(UIDataAdaptor.java:1347) 
> [richfaces-components-ui-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at javax.faces.component.UIForm.visitTree(UIForm.java:371) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.visitActivatorComponent(ExtendedPartialViewContextImpl.java:440)
>  [richfaces-core-impl-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.visitActivatorAtExecute(ExtendedPartialViewContextImpl.java:310)
>  [richfaces-core-impl-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.getExecuteIds(ExtendedPartialViewContextImpl.java:98)
>  [richfaces-core-impl-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at 
> org.richfaces.context.ExtendedPartialViewContextImpl.isExecuteAll(ExtendedPartialViewContextImpl.java:148)
>  [richfaces-core-impl-4.3.0.20121024-M2.jar:4.3.0.20121024-M2]
>       at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) 
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
>       at 
> com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
>  [jsf-impl-2.1.7-jbossorg-2.jar:]
> {code}

--
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
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues

Reply via email to