Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: 3.0
-
Fix Version/s: 3.1, EE-3.0.0.GA_P01
-
Component/s: ACE-Components
-
Labels:None
-
Environment:MyFaces 2.1.6, IE7
-
Assignee Priority:P2
-
Workaround Exists:Yes
-
Workaround Description:Use h:commandLinks instead of ice:commandLinks or use Mojarra instead of MyFaces.
Description
Following on IPCK-380, an issue was encountered on IE7, where a javascript error would arise after the ace fileEntry component had successfully uploaded a file. Investigation found that the problem was fixed after changing the ice:commandLink components in the navigation panel to h:commandLinks. This problem could only be reproduced on IE7, and not on newer versions on IE in IE7 mode.
The javascript error is "Error: 'form.navFrm:j_idcl' is null or not an object."
The j_idcl appears related to the ice:commandLink hidden input, and navFrm is the form name of the navigation panel form in the EE Composite Showcase. The ACE showcase does not exhibit this problem as it does not use ice:commandLinks in its navigation panel.
The javascript error is "Error: 'form.navFrm:j_idcl' is null or not an object."
The j_idcl appears related to the ice:commandLink hidden input, and navFrm is the form name of the navigation panel form in the EE Composite Showcase. The ACE showcase does not exhibit this problem as it does not use ice:commandLinks in its navigation panel.
ice:commandLink under MyFaces renders an onclick handler that submits the form and then does an onAfterUpdate() to clear the hidden input of its shared form field. At that point, the page could have navigated anywhere and updated anything, so that the submitted form may not be rendered any more, and the hidden input field might not be found. I don't recognise the syntax of form dot element id that is used in 'form.navFrm:j_idcl' but I recimmend doing a simple getElementById, and handling if it returns nothing. And it would be nice if it could be done when the response comes in, but before the updates are done. The different submit mechanism of fileEntry might be affecting this, but ice:commandLink's approach with is suspicious enough that attempting a change there is a good first step.