Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.0.BETA, EE-3.3.0.GA_P02
-
Fix Version/s: 4.0, EE-3.3.0.GA_P03
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Icefaces3 trunk revision# 37817
Server: tomcat6
Browser: FF3.6, IE7 & GoogleChrome29
Application: showcase (built with MyFaces JSF)
-
Assignee Priority:P2
Description
In showcase -> ace:dataTable:
> Table Configuration: Server Internal Error popup when changing order of the columns from the configuration panel (partialStateSavings=false specific).
9-Sep-2013 12:34:57 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/showcase] threw exception [null] with root cause
java.lang.NullPointerException
at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1304)
at javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:943)
at javax.faces.component.UIComponent.getContainerClientId(UIComponent.java:450)
at javax.faces.component.UIForm.getContainerClientId(UIForm.java:465)
at org.icefaces.ace.component.datatable.DataTable.UIComponentBase_getClientId(DataTable.java:1793)
at org.icefaces.ace.component.datatable.DataTable.getClientId(DataTable.java:1669)
at org.icefaces.ace.component.datatable.DataTable.getContainerClientId(DataTable.java:1646)
at javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:926)
at org.icefaces.ace.component.datatable.DataTable.setTableConfigPanel(DataTable.java:651)
at org.icefaces.ace.component.tableconfigpanel.TableConfigPanel.getTargetedDatatable(TableConfigPanel.java:40)
at org.icefaces.ace.component.tableconfigpanel.TableConfigPanel.setInView(TableConfigPanel.java:57)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:315)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:219)
at javax.faces.component._ComponentChildrenList.updateParent(_ComponentChildrenList.java:132)
at javax.faces.component._ComponentChildrenList.add(_ComponentChildrenList.java:82)
at javax.faces.component._ComponentChildrenList.add(_ComponentChildrenList.java:33)
at org.apache.myfaces.application.TreeStructureManager.internalRestoreTreeStructure(TreeStructureManager.java:132)
at org.apache.myfaces.application.TreeStructureManager.restoreTreeStructure(TreeStructureManager.java:104)
at org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:142)
at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2118)
at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:313)
at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
..........
Steps to reproduce:
- build showcase.war file with MyFaces JSF, and the PartialStateSavings context-param set to false in web.xml:
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
</context-param>
- go to showcase -> ace:dataTable -> Table Configuration demo.
- open the Table Config and change the order of columns, submit the change -> a Server Internal Error popup occurs, and the server error is visible in tomcat log.
This issue could not be reproduced using Mojarra JSF, and PartialStateSavings=false.
> Table Configuration: Server Internal Error popup when changing order of the columns from the configuration panel (partialStateSavings=false specific).
9-Sep-2013 12:34:57 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/showcase] threw exception [null] with root cause
java.lang.NullPointerException
at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1304)
at javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:943)
at javax.faces.component.UIComponent.getContainerClientId(UIComponent.java:450)
at javax.faces.component.UIForm.getContainerClientId(UIForm.java:465)
at org.icefaces.ace.component.datatable.DataTable.UIComponentBase_getClientId(DataTable.java:1793)
at org.icefaces.ace.component.datatable.DataTable.getClientId(DataTable.java:1669)
at org.icefaces.ace.component.datatable.DataTable.getContainerClientId(DataTable.java:1646)
at javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:926)
at org.icefaces.ace.component.datatable.DataTable.setTableConfigPanel(DataTable.java:651)
at org.icefaces.ace.component.tableconfigpanel.TableConfigPanel.getTargetedDatatable(TableConfigPanel.java:40)
at org.icefaces.ace.component.tableconfigpanel.TableConfigPanel.setInView(TableConfigPanel.java:57)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:315)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase._updateInView(UIComponentBase.java:322)
at javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:219)
at javax.faces.component._ComponentChildrenList.updateParent(_ComponentChildrenList.java:132)
at javax.faces.component._ComponentChildrenList.add(_ComponentChildrenList.java:82)
at javax.faces.component._ComponentChildrenList.add(_ComponentChildrenList.java:33)
at org.apache.myfaces.application.TreeStructureManager.internalRestoreTreeStructure(TreeStructureManager.java:132)
at org.apache.myfaces.application.TreeStructureManager.restoreTreeStructure(TreeStructureManager.java:104)
at org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:142)
at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2118)
at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:313)
at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
..........
Steps to reproduce:
- build showcase.war file with MyFaces JSF, and the PartialStateSavings context-param set to false in web.xml:
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
</context-param>
- go to showcase -> ace:dataTable -> Table Configuration demo.
- open the Table Config and change the order of columns, submit the change -> a Server Internal Error popup occurs, and the server error is visible in tomcat log.
This issue could not be reproduced using Mojarra JSF, and PartialStateSavings=false.
Issue is still reproducible on ICEfaces 4 trunk revision# 40068 with PARTIAL_STATE_SAVING=false and Myfaces 2.2. However, instead of the Server Internal Error popup it is a popup with the text "java.lang.NullPointerException".