Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-2.0.0
-
Fix Version/s: EE-3.0.0.GA
-
Component/s: Core Extensions
-
Labels:None
-
Environment:-
-
Workaround Description:Do not use com.icesoft.facelets.HtmlTagDecorator
Description
When creating a stock ICE 2.0 EE GA - JSF 2 sample and adding the following param:
<context-param>
<param-name>javax.faces.FACELETS_DECORATORS</param-name>
<param-value>com.icesoft.facelets.HtmlTagDecorator</param-value>
</context-param>
I get see the following exception on startup:
org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createAttribute(CoreDocumentImpl.java:564)
at org.icefaces.impl.context.DOMResponseWriter.writeAttribute(DOMResponseWriter.java:256)
at com.icesoft.faces.impl.renderkit.xhtml.XhtmlRendererBase.encodeBegin(XhtmlRendererBase.java:42)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:824)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1641)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
The exception is thrown from the following line of ICEfaces 2.0 EE GA code:
DOMResponseWriter.writeAttribute
public void writeAttribute(String name, Object value, String property) throws IOException {
if (null == value) {
return;
}
Attr attribute = document.createAttribute(name.trim());
attribute.setValue(String.valueOf(value));
appendToCursor(attribute);
}
The 3 method arguments output the following:
Name:
Property:null
Value:http://www.w3.org/1999/xhtml
Test case attached.
<context-param>
<param-name>javax.faces.FACELETS_DECORATORS</param-name>
<param-value>com.icesoft.facelets.HtmlTagDecorator</param-value>
</context-param>
I get see the following exception on startup:
org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createAttribute(CoreDocumentImpl.java:564)
at org.icefaces.impl.context.DOMResponseWriter.writeAttribute(DOMResponseWriter.java:256)
at com.icesoft.faces.impl.renderkit.xhtml.XhtmlRendererBase.encodeBegin(XhtmlRendererBase.java:42)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:824)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1641)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)
The exception is thrown from the following line of ICEfaces 2.0 EE GA code:
DOMResponseWriter.writeAttribute
public void writeAttribute(String name, Object value, String property) throws IOException {
if (null == value) {
return;
}
Attr attribute = document.createAttribute(name.trim());
attribute.setValue(String.valueOf(value));
appendToCursor(attribute);
}
The 3 method arguments output the following:
Name:
Property:null
Value:http://www.w3.org/1999/xhtml
Test case attached.
There is probably a bug in the following Enterprise feature that was added:
http://jira.icefaces.org/browse/IPCK-245
The idea is that com.icesoft.facelets.HtmlTagDecorator causes HTML markup to expand into components so that nesting within dataTable facets is as expected.
Ted.