[richfaces-issues] [JBoss JIRA] (RF-11681) rich:dataTable crashes on postback when columns are dynamically added when partial state saving is enabled

henk de boer (Created) (JIRA) jira-events at lists.jboss.org
Sat Nov 12 15:56:40 EST 2011


rich:dataTable crashes on postback when columns are dynamically added when partial state saving is enabled
----------------------------------------------------------------------------------------------------------

                 Key: RF-11681
                 URL: https://issues.jboss.org/browse/RF-11681
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: 4.0.0.Final
         Environment: Mojarra 2.1.3, 2.1.4, JBoss AS 6.0, JBoss AS 6.10
            Reporter: henk de boer


When columns are dynamically added to a rich:dataTable, a crash will occur after a postback:

{noformat}
java.lang.NullPointerException
	at com.sun.faces.application.view.StateManagementStrategyImpl$4.visit(StateManagementStrategyImpl.java:331)
	at com.sun.faces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:151)
	at org.richfaces.component.UIDataAdaptor.visitTree(UIDataAdaptor.java:1235)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at javax.faces.component.UIForm.visitTree(UIForm.java:344)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
	at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:326)
	at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
	at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:452)
	at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:303)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
{noformat}

The crash happens if the columns are added either in a backing bean or from another component (in both cases in a PreRenderView event handler, which is a save moment to modify the component tree).

If instead of a {{rich:dataTable}} an {{h:dataTable}} is used, the code works as expected. 

With the {{rich:dataTable}}, the statemanager tries to find an ID that looks e.g. like: {{j_idt98:j_idt99:j_id2}}, but in the rendered markup only IDs like {{j_idt98:j_idt99:0:j_id2}} and {{j_idt98:j_idt99:0:j_id3}} are found. In the state map however only IDs of the form {{j_idt98:j_idt99:0:j_id3}} and {{j_idt98:j_idt99:0:j_id4}} are there.




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list