Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: EE-3.0.0.BETA
-
Fix Version/s: None
-
Component/s: Facelet Components
-
Labels:None
-
Environment:n/a
Description
Issue Links
- blocks
-
IPCK-357 Reimplement Required Attribute Strategy for Composite Components
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
http://java.net/jira/browse/JAVASERVERFACES-1868
Bug in Mojarra prevents the use of the default attribute. Fixed in 2.2. Following exception occurs:
java.lang.IllegalArgumentException: Empty id attribute is not allowed
javax.faces.component.UIComponentBase.validateId(UIComponentBase.java:539)
javax.faces.component.UIComponentBase.setId(UIComponentBase.java:366)
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:168)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:74)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:342)
com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:179)
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:74)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:342)
com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:179)
The following exception is seen with MyFaces 2.16 using a composite interface version of the <icecc:filterTable>, which includes <icecc:filterColumn> and <icecc:column> tags. The same stack trace is also seen with a composite interface version of the <icecc:dialog> tag:
java.lang.NullPointerException
org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:117)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:369)
org.apache.myfaces.view.facelets.tag.UserTagHandler.apply(UserTagHandler.java:124)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:86)
org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:175)
org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:182)
org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:131)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:439)
org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:93)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:386)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:148)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:386)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:216)
org.apache.myfaces.view.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:255)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:386)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:216)
org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:86)
org.apache.myfaces.view.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:248)
org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:182)
org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:131)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:439)
org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:93)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:386)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
org.apache.myfaces.view.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:202)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:151)
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:435)
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
http://java.net/jira/browse/JAVASERVERFACES-1849
Bug in 2.1 Mojarra prevents the use of an attribute named 'rendered' . Fixed in 2.2. Following stack trace occurs:
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2263)
at
javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:2147)
at
com.sun.faces.application.ApplicationImpl.pushDeclaredDefaultValuesToAttributesMap(ApplicationImpl.java:1048)
at
com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1017)
at
org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:116)
at
javax.faces.application.ApplicationWrapper.createComponent(ApplicationWrapper.java:601)
at
com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.createComponent(CompositeComponentTagHandler.java:160)
at
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:431)
at
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:144)
at
http://java.net/jira/browse/JAVASERVERFACES-2284
Open bug in Mojarra 2.1.6 prevents passing params through composite components.
http://java.net/jira/browse/JAVASERVERFACES-2275
Open bug in Mojarra 2.1.6 prevents component state persisting on composite children.
Open bug in Mojarra 2.1.6 prevents the use of attribute with required="true" inside ui:repeat components:
Testing with MyFaces 2.1.6:
Packaged composite components in a jar with a custom namespace appear to only work with the default resource method requiring the following:
- use the <composite-library-name>icecc</composite-library-name> in icecc.taglib.xml
- do not define the composite component with the <tag> and <source> elements, but let MyFaces locate the component with the default resource method
When the <tag> is used in icecc.taglib.xml the following exception occurs:
java.lang.NullPointerException
org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:117)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:354)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:408)
org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:369)
org.apache.myfaces.view.facelets.tag.UserTagHandler.apply(UserTagHandler.java:124)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:291)
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:45)
org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:151)
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:435)
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
http://java.net/jira/browse/JAVASERVERFACES-2033
Bug in Mojarra prevents using composite components distributed in a separate jar with a custom namespace in Development mode. The following exception occurs:
javax.faces.view.facelets.TagException: /resources/myCC/layout.xhtml @13,16 <cc:interface> Component Not Found for identifier: body.getParent().
at com.sun.faces.facelets.tag.composite.InterfaceHandler.validateComponent(InterfaceHandler.java:135)
at com.sun.faces.facelets.tag.composite.InterfaceHandler.apply(InterfaceHandler.java:125)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
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.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
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:769)
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:410)