RichFaces 4.3.5 - JSF 2.1.19 - two edt-tables, first sortOrder rules the second table
leolo Apr 3, 2014 7:53 AMHi,
we have multiple extendedDataTables in a page. Only one table is rendered at any one time:
<h:panelGroup id="A" rendered="#{controllerBean.switch == 'true'}">
<ui:include src="snippetWithTableA.xhtml" />
</h:panelGroup>
<h:panelGroup id="B" rendered="#{controllerBean.switch == 'false'}">
<ui:include src="snippetWithTableB.xhtml" />
</h:panelGroup>
All columns of all tables have the sortBy-attributes set. If the snippet containing the first table is not rendered and if the first table contains a column, that has a sortOrder defined (e.g. sortOrder="descending") the sorting of all columns of the second table (the one, that is rendered) fails although the first snippet (<h:panelGroup id="A">) is not rendered. The extendedDataTable tries to sort the second table by a column of the first table (by the column, that has a sortOrder). Is this a known issue?
I had expected, that the table in snippetWithTableA.xhtml does not have any effect on the table in snippetWithTableB.xhtml, because snippetWithTableA.xhtml is not rendered. Even if both snippets would have been rendered I think the sortOrder of the first one should not influence the second table, which may have its own sortOrder.
snippetWithTableA.xhtml looks like this:
<ui:composition>
<rich:extendedDataTable id="tableA" value="#{controllerBean.itemListA}" var="b" selectionMode="none" sortMode="single">
<rich:column sortBy="#{b.datum}" sortOrder="descending">
<f:facet name="header">
<h:outputText value="#{msg.datum}" />
</f:facet>
<h:outputText value="#{b.datum}" />
</rich:column>
</rich:extendedDataTable>
</ui:composition>
snippetWithTableB.xhtml looks like this:
<rich:extendedDataTable id="tableB" value="#{controllerBean.itemListB}" var="b" selectionMode="none" sortMode="single">
<rich:column sortBy="#{b.whatever}">
<f:facet name="header">
<h:outputText value="#{msg.whatever}" />
</f:facet>
<h:outputText value="#{b.whatever}" />
</rich:column>
</rich:extendedDataTable>
The stacktrace:
10:31:13,734 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-/0.0.0.0:8080-9) /pages/snippetWithTableA.xhtml @39,111 sortBy="#{b.datum}": The class 'itemListBItem' does not have the property 'datum'.: javax.el.PropertyNotFoundException: /pages/snippetWithTableA.xhtml @39,111 sortBy="#{b.datum}": The class 'itemListBItem' does not have the property 'datum'.
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at org.richfaces.model.ArrangeableModel.compare(ArrangeableModel.java:299) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.model.ArrangeableModel.access$200(ArrangeableModel.java:51) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.model.ArrangeableModel$2.compare(ArrangeableModel.java:255) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324) [rt.jar:1.7.0_40]
at java.util.TimSort.sort(TimSort.java:203) [rt.jar:1.7.0_40]
at java.util.TimSort.sort(TimSort.java:173) [rt.jar:1.7.0_40]
at java.util.Arrays.sort(Arrays.java:659) [rt.jar:1.7.0_40]
at java.util.Collections.sort(Collections.java:217) [rt.jar:1.7.0_40]
at org.richfaces.model.ArrangeableModel.sort(ArrangeableModel.java:253) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.model.ArrangeableModel.arrange(ArrangeableModel.java:207) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.component.UIDataTableBase.createExtendedDataModel(UIDataTableBase.java:265) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:459) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:272) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.component.UIDataAdaptor.visitTree(UIDataAdaptor.java:1312) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIForm.visitTree(UIForm.java:362) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at org.richfaces.context.ExtendedPartialViewContextImpl.visitActivatorComponent(ExtendedPartialViewContextImpl.java:493) [richfaces-core-impl-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.context.ExtendedPartialViewContextImpl.visitActivatorAtExecute(ExtendedPartialViewContextImpl.java:354) [richfaces-core-impl-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.context.ExtendedPartialViewContextImpl.getExecuteIds(ExtendedPartialViewContextImpl.java:117) [richfaces-core-impl-4.3.5.Final.jar:4.3.5.Final]
at org.richfaces.context.ExtendedPartialViewContextImpl.isExecuteAll(ExtendedPartialViewContextImpl.java:167) [richfaces-core-impl-4.3.5.Final.jar:4.3.5.Final]
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:921) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.19-redhat-2.jar:2.1.19-redhat-2]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.1.19.1.Final-redhat-1.jar:2.1.19.1.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:499) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:373) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:408) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_40]