ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-399

HtmlTagDecorator does not handle html class attribute

    Details

    • Assignee Priority:
      P2

      Description

      Using the HtmlTagDecorator runs into an issue if you use the 'class' HTML attribute.

      SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/ipck-308] threw exception [Setter not found for property class] with root cause
      java.lang.IllegalArgumentException: Setter not found for property class
      at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2403)
      at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2283)
      at com.sun.faces.facelets.tag.jsf.ComponentRule$LiteralAttributeMetadata.applyMetadata(ComponentRule.java:87)
      at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
      at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:409)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:159)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at com.sun.faces.facelets.tag.jsf.core.FacetHandler.apply(FacetHandler.java:104)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at com.sun.faces.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:225)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at com.sun.faces.facelets.tag.jstl.core.IfHandler.apply(IfHandler.java:96)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
      at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
      at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:308)
      at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:367)
      at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:326)
      at com.sun.faces.facelets.tag.UserTagHandler.apply(UserTagHandler.java:142)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
      at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:184)
      at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
      at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
      at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
      at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:774)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

        Activity

        Hide
        Deryk Sinotte added a comment -

        Assigning to Ted. I assume that you meant HtmlTagDecorator. I couldn't find HtmlFaceletsTagDecorator.java anywhere

        Show
        Deryk Sinotte added a comment - Assigning to Ted. I assume that you meant HtmlTagDecorator. I couldn't find HtmlFaceletsTagDecorator.java anywhere
        Hide
        Ted Goddard added a comment -

        Checked in to icefaces-ee3/trunk/icefaces-ee.

        Show
        Ted Goddard added a comment - Checked in to icefaces-ee3/trunk/icefaces-ee.
        Hide
        Ted Goddard added a comment -

        The fix was to implement a BeanInfo and empty custom component for the components created by the decorated tags. This allowed the getClass() method to be ignored on the component, passing the class attribute through.

        Show
        Ted Goddard added a comment - The fix was to implement a BeanInfo and empty custom component for the components created by the decorated tags. This allowed the getClass() method to be ignored on the component, passing the class attribute through.
        Hide
        Ted Goddard added a comment -

        svn commit icefaces-ee/core -m "common base class for HTML tags converted to components allowing class attribute and removed println (IPCK-399)"
        Adding icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlComponent.java
        Adding icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlComponentBeanInfo.java
        Sending icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlRendererBase.java
        Sending icefaces-ee/core/src/main/resources/META-INF/faces-config.xml
        Sending icefaces-ee/core/src/main/resources/META-INF/xhtml.taglib.xml
        Transmitting file data .....
        Committed revision 31143.

        Show
        Ted Goddard added a comment - svn commit icefaces-ee/core -m "common base class for HTML tags converted to components allowing class attribute and removed println ( IPCK-399 )" Adding icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlComponent.java Adding icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlComponentBeanInfo.java Sending icefaces-ee/core/src/main/java/com/icesoft/impl/renderkit/xhtml/XhtmlRendererBase.java Sending icefaces-ee/core/src/main/resources/META-INF/faces-config.xml Sending icefaces-ee/core/src/main/resources/META-INF/xhtml.taglib.xml Transmitting file data ..... Committed revision 31143.

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: