ICEfaces
  1. ICEfaces
  2. ICE-7017

DeltaSubmit not working when configured to run against MyFaces

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.2
    • Fix Version/s: 2.1-Beta, 3.0
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      ICEfaces 2 MyFaces deltaSubmit
    • Assignee Priority:
      P3
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)
    • Workaround Exists:
      Yes
    • Workaround Description:
      Set deltaSubmit to false

      Description

      When the compat Component Showcase is run using MyFaces as the JSF implementation and deltaSubmit is set to true, then clicking the command links to navigate dynamically to the different content doesn't work. Clicking twice on the same link will eventually take you to the correct page and setting deltaSubmit to false also allows for proper navigation between the examples.

        Issue Links

          Activity

          Hide
          Deryk Sinotte added a comment -

          Linking to the parent MyFaces compatibility case.

          Show
          Deryk Sinotte added a comment - Linking to the parent MyFaces compatibility case.
          Hide
          Deryk Sinotte added a comment -

          Assigning to Mircea for testing once the new deltaSubmit algorithm is done.

          Show
          Deryk Sinotte added a comment - Assigning to Mircea for testing once the new deltaSubmit algorithm is done.
          Hide
          Deryk Sinotte added a comment -

          Actually assigning to Mircea this time. Now that the new deltaSubmit algorithm is done (ICE-6879), it needs to be verified that works with MyFaces as well.

          Show
          Deryk Sinotte added a comment - Actually assigning to Mircea this time. Now that the new deltaSubmit algorithm is done ( ICE-6879 ), it needs to be verified that works with MyFaces as well.
          Hide
          Mircea Toma added a comment - - edited

          The reason of this issue can be found in the MyFaces implementation of ui:include tag handler. ui:include facet is used by component-showcase to dynamically change the content of the demo panel when navigating between the different components. The tag handler tries to evaluate the expression bound to its "src" attribute during restore view phase, unfortunately the DeltaSubmitPhaseListener reconstructs the full set of parameters only before apply request value phase (which comes later than restore view). Because of this the "src" attribute expression is calculated using only the submitted parameters which don't make much sense yet for the used components. That is why the second click triggers the desired navigation, because the expression is calculated off the parameters that were reconstructed during the last request.

          Show
          Mircea Toma added a comment - - edited The reason of this issue can be found in the MyFaces implementation of ui:include tag handler. ui:include facet is used by component-showcase to dynamically change the content of the demo panel when navigating between the different components. The tag handler tries to evaluate the expression bound to its "src" attribute during restore view phase, unfortunately the DeltaSubmitPhaseListener reconstructs the full set of parameters only before apply request value phase (which comes later than restore view). Because of this the "src" attribute expression is calculated using only the submitted parameters which don't make much sense yet for the used components. That is why the second click triggers the desired navigation, because the expression is calculated off the parameters that were reconstructed during the last request.
          Hide
          Mircea Toma added a comment -

          We currently rely on the old document to calculate the previous parameters, document saved in the view map. The old document (created during previous request) can be accessed only after the restore phase was executed. Unfortunately we cannot reconstruct the full set of parameters for the current request sooner (before restore phase) because we don't have the old document yet restored.
          In conclusion we cannot fix this issue (for MyFaces) unless we save the old documents into a separate map which can be used to retrieve the old documents corresponding to the current view before the restore phase executes.

          Show
          Mircea Toma added a comment - We currently rely on the old document to calculate the previous parameters, document saved in the view map. The old document (created during previous request) can be accessed only after the restore phase was executed. Unfortunately we cannot reconstruct the full set of parameters for the current request sooner (before restore phase) because we don't have the old document yet restored. In conclusion we cannot fix this issue (for MyFaces) unless we save the old documents into a separate map which can be used to retrieve the old documents corresponding to the current view before the restore phase executes.
          Hide
          Mircea Toma added a comment -

          Need to record this issue in Myfaces bug tracking system. Mark this issue as "Won't fix". Mark this issue for "Documention" so that we list this as a known issue.

          Show
          Mircea Toma added a comment - Need to record this issue in Myfaces bug tracking system. Mark this issue as "Won't fix". Mark this issue for "Documention" so that we list this as a known issue.
          Hide
          Mircea Toma added a comment -

          Add this to the list of know issues.

          Show
          Mircea Toma added a comment - Add this to the list of know issues.
          Hide
          Mircea Toma added a comment -

          Issue recorded in MyFaces' bug tracking system: https://issues.apache.org/jira/browse/MYFACES-3271

          Show
          Mircea Toma added a comment - Issue recorded in MyFaces' bug tracking system: https://issues.apache.org/jira/browse/MYFACES-3271
          Hide
          Mircea Toma added a comment -

          Looks like that adding the following context parameter solves this issue:

          <context-param>
          <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS</param-name>
          <param-value>true</param-value>
          </context-param>

          For more information see https://issues.apache.org/jira/browse/MYFACES-3271 .

          Show
          Mircea Toma added a comment - Looks like that adding the following context parameter solves this issue: <context-param> <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS</param-name> <param-value>true</param-value> </context-param> For more information see https://issues.apache.org/jira/browse/MYFACES-3271 .

            People

            • Assignee:
              Mircea Toma
              Reporter:
              Deryk Sinotte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: