ICEfaces
  1. ICEfaces
  2. ICE-10524

Problem with PartialStateSaving and component binding.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA_P02, 4.0
    • Fix Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03, 4.1
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      jsf 2 icefaces

      Description

      See attached sample app to reproduce. I have tested it with 3.3.0 open source (easier to build as it's maven-built) as well as 3.3.0.GA_P02.
      The sample app basically has a page with 2 links.
          <h:form id="frm">
              <h:commandLink value="Add component to tree"
                             actionListener="#{requestBean.addComponent}"/>
              <br/>
              <h:commandLink value="Trigger lifecycle"
                             actionListener="#{requestBean.doNothing}"/>
              <br/>
              <h:panelGroup id="pgrp" binding="#{requestBean.group}">
              </h:panelGroup>
          </h:form>

      One link will dynamically add an HtmlOutputText component to an HtmlPanelGroup. the other link just triggers a jsf lifecycle.

      If you remove the icefaces jar from the war, with PartialStateSaving set to true (default anyways), then the HtmlPanelGroup state will continue to add another HtmlOutputText when you click on a link. With the icefaces jar, you only ever get the last HtmlOutputText component and if you trigger a new jsf lifecycle, it clears all state of the HtmlPanelGroup.
      The only way to maintain state with the icefaces jar is to set PartialStateSaving to false in web.xml:-
         <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
              <param-value>false</param-value>
      and this is inconsistent with how JSF is behaving.
      Customer has suggested a fix. (see diff attached).

        
         
      1. state_saving.patch
        2 kB
        Judy Guglielmin

        Activity

        Hide
        Ken Fyten added a comment -

        Assigned to Mircea to review the regression failure noted in the comment above.

        Show
        Ken Fyten added a comment - Assigned to Mircea to review the regression failure noted in the comment above.
        Hide
        Mircea Toma added a comment - - edited

        Modified DOMPartialViewContext to acquire the view state key after the component tree was visited (rendered) to make sure that the generated key corresponds to the state at the end of JSF lifecycle.

        Show
        Mircea Toma added a comment - - edited Modified DOMPartialViewContext to acquire the view state key after the component tree was visited (rendered) to make sure that the generated key corresponds to the state at the end of JSF lifecycle.
        Hide
        Liana Munroe added a comment -

        Verified autoCompleteEntry issues fixed. ICEfaces 4 trunk, ICEfaces EE-3.3.0 maintenance branch r44504. Tomcat 7, FF 34, Chrome 41, IE 11, 10, 9, 8, 7.

        Show
        Liana Munroe added a comment - Verified autoCompleteEntry issues fixed. ICEfaces 4 trunk, ICEfaces EE-3.3.0 maintenance branch r44504. Tomcat 7, FF 34, Chrome 41, IE 11, 10, 9, 8, 7.
        Hide
        Ken Fyten added a comment -

        Note that the final commit to the icefaces4/trunk for this issue does not affect the functionality in the EE 4.0 release, which was based on the implementation prior to this commit. However, this final commit will be included in future IF 4 releases (4.1+).

        Show
        Ken Fyten added a comment - Note that the final commit to the icefaces4/trunk for this issue does not affect the functionality in the EE 4.0 release, which was based on the implementation prior to this commit. However, this final commit will be included in future IF 4 releases (4.1+).
        Hide
        Carmen Cristurean added a comment -

        Verified on ICEfaces4 trunk r.44504 (test case "ice3sbx"), and ICEfaces 3.3.0 r.44504 (test cases "ice3sbx" and "sc13323a"), in IE11, Chrome41, FF34.

        Regression tests added to the QA framework:

        Show
        Carmen Cristurean added a comment - Verified on ICEfaces4 trunk r.44504 (test case "ice3sbx"), and ICEfaces 3.3.0 r.44504 (test cases "ice3sbx" and "sc13323a"), in IE11, Chrome41, FF34. Regression tests added to the QA framework: for IF4 trunk testing: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/ICE-10524 for IF-3.3.0 testing: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Manual/ICE-10524 http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Manual/ICE-10524a

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Judy Guglielmin
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: