ICEfaces
  1. ICEfaces
  2. ICE-9578

showcase - ace:dataTable Server Internal Error popup when columns are reordered via Table Config (PartialStateSavings=false, MyFaces specific)

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major 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.

        Activity

        Carmen Cristurean created issue -
        Carmen Cristurean made changes -
        Field Original Value New Value
        Summary showcase - ace:dataTable Server Internal Error popup when columns are reordered via Table Config (PartialStateSavings=false specific) showcase - ace:dataTable Server Internal Error popup when columns are reordered via Table Config (PartialStateSavings=false, MyFaces specific)
        Carmen Cristurean made changes -
        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 the PartialStateSavings context-param set to false:
        <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 logs.
        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 logs.
        Carmen Cristurean made changes -
        Environment Icefaces3 trunk revision# 37817
        Server: tomcat6
        Browser: FF3.6, IE7 & GoogleChrome29
        Icefaces3 trunk revision# 37817
        Server: tomcat6
        Browser: FF3.6, IE7 & GoogleChrome29
        Application: showcase (built with MyFaces JSF)
        Carmen Cristurean made changes -
        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 logs.
        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.
        Hide
        Cruz Miraback added a comment -

        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".

        Show
        Cruz Miraback added a comment - 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".
        Ken Fyten made changes -
        Assignee Arturo Zambrano [ artzambrano ]
        Fix Version/s 4.0 [ 11382 ]
        Fix Version/s 4.0.BETA [ 10770 ]
        Assignee Priority P2 [ 10011 ]
        Hide
        Carmen Cristurean added a comment -

        This is also an issue with EE-3.3.0-maintenance branch rev. 41318 (partialStateSavings=false and MyFaces 2.1.15).

        Show
        Carmen Cristurean added a comment - This is also an issue with EE-3.3.0-maintenance branch rev. 41318 (partialStateSavings=false and MyFaces 2.1.15).
        Carmen Cristurean made changes -
        Affects Version/s EE-3.3.0.GA_P02 [ 11371 ]
        Ken Fyten made changes -
        Assignee Priority P2 [ 10011 ] P1 [ 10010 ]
        Ken Fyten made changes -
        Assignee Priority P1 [ 10010 ] P3 [ 10012 ]
        Ken Fyten made changes -
        Assignee Priority P3 [ 10012 ] P2 [ 10011 ]
        Hide
        Arturo Zambrano added a comment -

        The root cause of the issue is that when javax.faces.PARTIAL_STATE_SAVING=false, at certain requests FacesContext.getRenderKit() returns null in the MyFaces code. The renderkit is only retrieved to obtain the renderer of the component and then use the convertClientId() method when determining the table's client id.

        A possible solution would be to create a fake RenderKit for this scenario, in order to avoid this kind of processing and this exception. This would be similar to another workaround of creating a fake UIViewRoot for Mojarra's failure to send the exception message when javax.faces.PARTIAL_STATE_SAVING=false in our ExtendedExceptionHandler class.

        Show
        Arturo Zambrano added a comment - The root cause of the issue is that when javax.faces.PARTIAL_STATE_SAVING=false, at certain requests FacesContext.getRenderKit() returns null in the MyFaces code. The renderkit is only retrieved to obtain the renderer of the component and then use the convertClientId() method when determining the table's client id. A possible solution would be to create a fake RenderKit for this scenario, in order to avoid this kind of processing and this exception. This would be similar to another workaround of creating a fake UIViewRoot for Mojarra's failure to send the exception message when javax.faces.PARTIAL_STATE_SAVING=false in our ExtendedExceptionHandler class.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #42492 Tue Sep 02 17:47:46 MDT 2014 art.zambrano ICE-9578 added workaround for MyFaces and javax.faces.PARTIAL_STATE_SAVING=false to set a default RenderKit id when FacesContext().getRenderKit() returns null
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
        Hide
        Arturo Zambrano added a comment -

        Committed fix to 4.0 trunk at revision 42492. Added workaround for MyFaces and javax.faces.PARTIAL_STATE_SAVING=false to set a default RenderKit id (RenderKitFactory.HTML_BASIC_RENDER_KIT) when FacesContext().getRenderKit() returns null. This prevents the NPE, by letting the MyFaces code read the RenderKit instance that it expects, even though it won't actually use it to determine the client id.

        Show
        Arturo Zambrano added a comment - Committed fix to 4.0 trunk at revision 42492. Added workaround for MyFaces and javax.faces.PARTIAL_STATE_SAVING=false to set a default RenderKit id (RenderKitFactory.HTML_BASIC_RENDER_KIT) when FacesContext().getRenderKit() returns null. This prevents the NPE, by letting the MyFaces code read the RenderKit instance that it expects, even though it won't actually use it to determine the client id.
        Arturo Zambrano made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Carmen Cristurean added a comment - - edited

        Verified with IF4 trunk rev. 42492 in IE10, FF31, Chrome36.

        This issue still exists on EE-3.3.0-maintenance branch rev. 42484.

        Show
        Carmen Cristurean added a comment - - edited Verified with IF4 trunk rev. 42492 in IE10, FF31, Chrome36. This issue still exists on EE-3.3.0-maintenance branch rev. 42484.
        Ken Fyten made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Ken Fyten made changes -
        Fix Version/s EE-3.3.0.GA_P03 [ 11572 ]
        Ken Fyten made changes -
        Security Private [ 10001 ]
        Hide
        Arturo Zambrano added a comment -

        Applied fix to the 3.3 EE maintenance branch at revision 42503.

        Show
        Arturo Zambrano added a comment - Applied fix to the 3.3 EE maintenance branch at revision 42503.
        Arturo Zambrano made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces ee-3.3.0 maintenance branch r42510. Tomcat 7, all browsers, myfaces jsf and PARTIAL_STATE_SAVING=false .

        Show
        Liana Munroe added a comment - Verified ICEfaces ee-3.3.0 maintenance branch r42510. Tomcat 7, all browsers, myfaces jsf and PARTIAL_STATE_SAVING=false .
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Carmen Cristurean
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: