Details
-
Type: Bug
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: 3.3
-
Fix Version/s: None
-
Component/s: Framework
-
Labels:None
-
Environment:Windows 7, Tomcat 7
Description
If there is a FileEntry component in the component tree it is always returned as to be updated by the DOM Differ.
The FileEntry is rendered in the DOM as <input type="file" ...
Reason:
org.icefaces.impl.context.DOMPartialViewContext.applyBrowserChanges(Map, Document)
line 400ff.
This method adds the value attribute for all input elements, if it is missing.
But there is generally no "value" attribute allowed for type "file" input tags (for security reasons).
This leads to the differences in the old and new DOM tree in the render phase:
org.icefaces.impl.util.DOMUtils.compareAttributes(Node, Node)
line 937ff.
oldMap: [id="frmCreateProgramSet:objectFileEntryComp::vjj34sb", name="frmCreateProgramSet:objectFileEntryComp::vjj34sb", tabindex="0", type="file", value=""]
newMap: [id="frmCreateProgramSet:objectFileEntryComp::vjj34sb", name="frmCreateProgramSet:objectFileEntryComp::vjj34sb", tabindex="0", type="file"]
Fix suggestion:
Do not set value attribute for input elements of type "file" in DOMPartialViewContext l. 407
if (!inputElement.getAttribute("type").equals("file")) {
inputElement.setAttribute("value", "");
}
The FileEntry is rendered in the DOM as <input type="file" ...
Reason:
org.icefaces.impl.context.DOMPartialViewContext.applyBrowserChanges(Map, Document)
line 400ff.
This method adds the value attribute for all input elements, if it is missing.
But there is generally no "value" attribute allowed for type "file" input tags (for security reasons).
This leads to the differences in the old and new DOM tree in the render phase:
org.icefaces.impl.util.DOMUtils.compareAttributes(Node, Node)
line 937ff.
oldMap: [id="frmCreateProgramSet:objectFileEntryComp::vjj34sb", name="frmCreateProgramSet:objectFileEntryComp::vjj34sb", tabindex="0", type="file", value=""]
newMap: [id="frmCreateProgramSet:objectFileEntryComp::vjj34sb", name="frmCreateProgramSet:objectFileEntryComp::vjj34sb", tabindex="0", type="file"]
Fix suggestion:
Do not set value attribute for input elements of type "file" in DOMPartialViewContext l. 407
if (!inputElement.getAttribute("type").equals("file")) {
inputElement.setAttribute("value", "");
}