Details
Description
When there are multiple ICEfaces portlets on a portal page, it appears that the javax.faces.ViewState value is not always correctly applied to all the forms in the portlets.
For example, using the Chat portlet as an example, assume there are 2 instances on the portal page.
1) Interact with the first portlet by logging in.
2) Interact with the second portlet by logging in. At this point, the response contains an update to the first portlet at the <form> level (this should likely be more granular but that's a different issue). The updated form does NOT include the ViewState. There is another update for the ViewState in the response, but it is not correctly applied to the form.
3) Interact with the first portlet again by sending a message. Since this form does not contain the ViewState, the resulting request results in a new View and the UIViewRoot does not contain the old DOM as an attribute (which it would if the ViewState was provided). The resulting update comes back as a ViewRoot update, replacing the entire page.
So the issue seems to be center around why the ViewState is not properly restored to the form when it's updated.
For example, using the Chat portlet as an example, assume there are 2 instances on the portal page.
1) Interact with the first portlet by logging in.
2) Interact with the second portlet by logging in. At this point, the response contains an update to the first portlet at the <form> level (this should likely be more granular but that's a different issue). The updated form does NOT include the ViewState. There is another update for the ViewState in the response, but it is not correctly applied to the form.
3) Interact with the first portlet again by sending a message. Since this form does not contain the ViewState, the resulting request results in a new View and the UIViewRoot does not contain the old DOM as an attribute (which it would if the ViewState was provided). The resulting update comes back as a ViewRoot update, replacing the entire page.
So the issue seems to be center around why the ViewState is not properly restored to the form when it's updated.
Issue Links
- blocks
-
ICE-6018 Upgrade Chat portlet example
- Closed
Modified versions of 2.0.4-b06 libs are checked in with the patch applied. Resolving as fixed until such time as an official release which includes the patch can be used. Testing the the chat portlet shows that the problem of the missing ViewState is gone and the portlets no longer do a full ViewRoot update because of this.