Error - Sorting column for a dataTable inside a rowExpansion

UI Components for JSF
Post Reply
felipecaparelli
Posts: 10
Joined: 19 Oct 2012, 16:33

25 Feb 2015, 18:36

Hi guys,

The dataTable component is throwing an exception when it has a sorted column, and more specifically when it is inside a rowExpansion of another dataTable.

The problem occurs if I click to sort the column inside the inner dataTable and after I try to update the parent rowExpansion or dataTable. Follow the code:

Code: Select all

<p:dataTable id="listaitem" var="item" 
	value="#{myView.microRegioes}"  sortBy="#{item.name}" rowIndexVar="rowIndex" 
	emptyMessage="#{msg.dadosNaoEncontrados}" scrollable="true" scrollHeight="295" rowKey="#{item.code}">												
	<p:column>
		<p:rowToggler />
	</p:column>
	<p:column headerText="Item" sortBy="#{item.code}">
		<h:outputText value="#{item.code} - #{item.name}" />
	</p:column>				
	<p:column headerText="Total" sortBy="#{item.totalVolumessubitems}">
		<h:outputText value="#{item.totalSubitems}" />
	</p:column>	
	<p:rowExpansion id="expRow">
	   <p:dataTable id="subitems" styleClass="list"
			var="subitem" value="#{item.subitems}" rowIndexVar="rowIndex"
			rowKey="#{subitem.code}" selection="#{myView.removedSubitems}" sortBy="#{subitem.code}">
			
			<p:ajax event="toggleSelect" listener="#{myView.togglesubitemsitem}" async="true" />
			<p:ajax event="rowSelectCheckbox" listener="#{myView.excluirsubitem}" />
			<p:ajax event="rowUnselectCheckbox" listener="#{myView.retornarsubitem}" />	
			
			<p:column selectionMode="multiple" />	
			<p:column sortBy="#{subitem.name}" headerText="Subitem">
				<h:outputText value="#{subitem.name}" />
			</p:column>					
			<p:column sortBy="#{subitem.total}" headerText="Total">
				<h:outputText value="#{subitem.total}" />
			</p:column>												        	
		</p:dataTable>	
	</p:rowExpansion>			        	
</p:dataTable>
The error is:

Code: Select all

java.lang.NullPointerException
                at org.primefaces.component.datatable.DataTable.findColumn(DataTable.java:785)
                at org.primefaces.component.datatable.DataTable.getSortColumn(DataTable.java:1268)
                at org.primefaces.component.datatable.feature.SortFeature.singleSort(SortFeature.java:135)
                at org.primefaces.component.datatable.DataTableRenderer.preRender(DataTableRenderer.java:109)
                at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:83)
                at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
                at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
                at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
                at org.primefaces.component.datatable.feature.RowExpandFeature.encodeExpansion(RowExpandFeature.java:65)
                at org.primefaces.component.datatable.feature.RowExpandFeature.encode(RowExpandFeature.java:36)
                at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:78)
                at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
                at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
                at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:582)
                at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
                at org.primefaces.component.api.UIData.visitTree(UIData.java:692)
                at org.primefaces.component.api.UIData.visitColumnContent(UIData.java:879)
                at org.primefaces.component.api.UIData.visitRows(UIData.java:853)
                at org.primefaces.component.api.UIData.visitTree(UIData.java:707)
                at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
                at org.primefaces.component.api.UIData.visitColumnContent(UIData.java:879)
                at org.primefaces.component.api.UIData.visitRows(UIData.java:853)
                at org.primefaces.component.api.UIData.visitTree(UIData.java:707)
                at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
                at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
                at javax.faces.component.UIForm.visitTree(UIForm.java:362)
                at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
                at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
                at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403)
                at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:322)
                at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
                at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
                at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1004)
                at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
                at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430)
                at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
                at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
                at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
                at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
                at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
                at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
                at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
                at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
                at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
                at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
                at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
                at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105)
                at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
                at br.com.marabraz.siscorpweb.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:80)
                at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
                at br.com.marabraz.siscorpweb.filter.LoginSessionFilter.doFilter(LoginSessionFilter.java:79)
                at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
                at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
                at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
                at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3729)
                at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695)
                at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
                at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
                at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2285)
                at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184)
                at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459)
                at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
                at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

I am using: Primefaces 5.1, JSF 2.2 and Weblogic 11gR1 (10.3.5).

kukeltje
Expert Member
Posts: 9605
Joined: 17 Jun 2010, 13:34
Location: Netherlands

25 Feb 2015, 23:13

Most likely related to the same core issue of what is reported here http://forum.primefaces.org/viewtopic.p ... 70#p120370

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 24 guests