I tested back a couple of versions and the behaviour seems to be there in some form since at least the 3.0.0 release. It's manifests slightly differently in that push may stop working and not recover after a page reload. The basics of the issue on the current trunk are:
When the page first loads, we check the ViewStates on the page using the browser's JavaScript console. It correctly reports the proper ViewState element with the right value for each of the 3 forms on the page:
document.getElementsByName('javax.faces.ViewState');
[
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
,
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
,
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
]
After logging in, we check again. The ViewStates are there with the correct values. However, they have been "fixed" by our code and are now missing the id and autocomplete attributes:
document.getElementsByName('javax.faces.ViewState');
[
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
]
After logging in from a second browser, the first push is triggered which results in an update with a message saying that a new user has joined. However, as part of this push related update, the ViewState for the client form (not our own hidden forms) is gone. Either removed or not replaced:
document.getElementsByName('javax.faces.ViewState');
[
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
]
Any subsequent request from that form now result in a full ViewRoot or ViewBody update since no ViewState was sent with the request:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewBody"><![CDATA[<body><span id="_t9">.....
I tested back a couple of versions and the behaviour seems to be there in some form since at least the 3.0.0 release. It's manifests slightly differently in that push may stop working and not recover after a page reload. The basics of the issue on the current trunk are:
When the page first loads, we check the ViewStates on the page using the browser's JavaScript console. It correctly reports the proper ViewState element with the right value for each of the 3 forms on the page:
document.getElementsByName('javax.faces.ViewState');
[
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
,
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
,
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" autocomplete="off">
]
After logging in, we check again. The ViewStates are there with the correct values. However, they have been "fixed" by our code and are now missing the id and autocomplete attributes:
document.getElementsByName('javax.faces.ViewState');
[
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
]
After logging in from a second browser, the first push is triggered which results in an update with a message saying that a new user has joined. However, as part of this push related update, the ViewState for the client form (not our own hidden forms) is gone. Either removed or not replaced:
document.getElementsByName('javax.faces.ViewState');
[
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
,
<input name="javax.faces.ViewState" value="8786015529719486675:6375718628450418134" type="hidden">
]
Any subsequent request from that form now result in a full ViewRoot or ViewBody update since no ViewState was sent with the request:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewBody"><![CDATA[<body><span id="_t9">.....