Ken H created RF-12654:
--------------------------

             Summary: 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


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.

For example:

index.html
{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}

Results 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