Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.3, EE-3.3.0.GA
-
Fix Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0
-
Component/s: Framework
-
Labels:None
-
Environment:ICEfaces 3.x, Mojarra 2.1.8+, autoID=true (default)
-
Assignee Priority:P2
-
ICEsoft Forum Reference:
-
Workaround Exists:Yes
-
Workaround Description:Use Mojarra 2.1.3-2.1.6, or disable autoID (which could result in larger than expected DOM-diffs is suitable static IDs are not assigned to the page components).
Description
Looks like Mojarra started supporting <h:body id="foo"> in 2.1.8 as per: https://java.net/jira/browse/JAVASERVERFACES-2409.
Unfortunately, this also appears to be causing the ICEfaces autoID feature, which is enabled by default, to assign a dynamic ID to the BODY element. This can cause unnecessary and generally undesirable full page updates if there are changes to IDed elements in the head of the page (such as introducing or removing linked resources dynamically), which could result in the dynamic ID being assigned to the BODY element being different between renders - resulting in the DOM diff encompassing the entire body or document.
The solution is to have autoID avoid setting a dynamic ID on the BODY element.
Unfortunately, this also appears to be causing the ICEfaces autoID feature, which is enabled by default, to assign a dynamic ID to the BODY element. This can cause unnecessary and generally undesirable full page updates if there are changes to IDed elements in the head of the page (such as introducing or removing linked resources dynamically), which could result in the dynamic ID being assigned to the BODY element being different between renders - resulting in the DOM diff encompassing the entire body or document.
The solution is to have autoID avoid setting a dynamic ID on the BODY element.
Back-ported fix.