ICEfaces
  1. ICEfaces
  2. ICE-8507

ViewState is null after closing an ace:dialog

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1, EE-3.0.0.GA_P01
    • Fix Version/s: EE-3.0.0.GA_P01, 3.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 3.1.0 BETA2 06282012, ICEfaces 3.1.0, ICEfaces 3.2.0 BETA1

      Description

      Upon closing an ace:dialog which executes and all render, the page becomes unresponsive since the javax.faces.ViewState is null.

      Test Case scenario:
      A page includes two forms, one that includes an inputText field and a commandButton. This input field takes in a int value which will load an ace:dataTable with the entered in number of rows. This form also includes another commandButton that will open up an ace:dialog. This dialog is located in a different form. The dialog contains another input field which will update the underlying input field when the Ok button is clicked.

      Initial testing found that this issue isn't seen with the ICEfaces EE 3.0.0 GA release.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that reproduces the issue.

        Steps:

        • Load welcomeICEfaces,jsf
        • In the input field enter in an int value, for example '5'.
        • Click on the Populate button, the dataTable will load with 5 rows.
        • Click on the Open button, an ace:dialog is shown.
        • Enter in a different int value for the input field, for example '2'.
        • Click on the Ok button. The dataTable is cleared out and the new value is shown in the input field.
        • Click on the Populate button, nothing happens.

        In the server logs it should be printing out the request values including the javax.faces.ViewState value. At this point the value is null. Clicking on the populate button again loads a new ViewState value and the table loads, clicking the Open button doesn't work at this point however.

        Show
        Arran Mccullough added a comment - Attached test case that reproduces the issue. Steps: Load welcomeICEfaces,jsf In the input field enter in an int value, for example '5'. Click on the Populate button, the dataTable will load with 5 rows. Click on the Open button, an ace:dialog is shown. Enter in a different int value for the input field, for example '2'. Click on the Ok button. The dataTable is cleared out and the new value is shown in the input field. Click on the Populate button, nothing happens. In the server logs it should be printing out the request values including the javax.faces.ViewState value. At this point the value is null. Clicking on the populate button again loads a new ViewState value and the table loads, clicking the Open button doesn't work at this point however.
        Hide
        Mircea Toma added a comment -

        Generate random text/comment along the view state fixing code rendered by FixViewState.ScriptWriter. This forces the DOM diffing to send the code for non-ICEfaces requests since the client side view state fixing is not executed. The random comment is appended only when non-ICEFaces requests are detected.

        Show
        Mircea Toma added a comment - Generate random text/comment along the view state fixing code rendered by FixViewState.ScriptWriter. This forces the DOM diffing to send the code for non-ICEfaces requests since the client side view state fixing is not executed. The random comment is appended only when non-ICEFaces requests are detected.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Arran Mccullough
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: