Note that there are some explanatory texts on larger screens.

plurals
  1. POCan I nest a composite component in itself recursively?
    primarykey
    data
    text
    <p>I have DTO which contains itself (it is nested).</p> <pre><code>public class MyDTO { private SomeData someData; private MyDTO nested; // getters and setters } </code></pre> <p>I created composite component, which is calls itself recursively. I call it like this: </p> <pre><code>&lt;screen:my-dto-screen dto="#{myDTOBean.myDto}" /&gt; </code></pre> <p>The definition is:</p> <pre><code> &lt;composite:interface&gt; &lt;composite:attribute name="dto"/&gt; &lt;/composite:interface&gt; -- display "someData" here -- &lt;p:panel rendered="#{cc.attrs.dto.nested != null}" /&gt; -- this acts as recursion bottom -- &lt;screen:my-dto-screen dto="#{cc.attrs.dto.nested}" /&gt; &lt;/p:panel&gt; &lt;composite:implementation&gt; </code></pre> <p>The real code is not simple as this, but I wrote this in order to give you a simple idea what the problem is about. Everything seems fine, but I get some strange exceptions in view.</p> <pre><code>javax.servlet.ServletException javax.faces.webapp.FacesServlet.service(FacesServlet.java:422) org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) cayetano.games.common.web.security.OperatorPermissionsFilter.doFilter(OperatorPermissionsFilter.java:74) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) cayetano.games.common.web.security.WebUsernamePasswordAuthenticationFilter.actualDoFilter(WebUsernamePasswordAuthenticationFilter.java:65) cayetano.games.common.web.security.WebUsernamePasswordAuthenticationFilter.doFilter(WebUsernamePasswordAuthenticationFilter.java:43) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) root cause java.lang.StackOverflowError java.util.regex.Pattern$Curly.match(Pattern.java:3754) java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3383) java.util.regex.Pattern$Slice.match(Pattern.java:3499) java.util.regex.Pattern$GroupTail.match(Pattern.java:4244) java.util.regex.Pattern$BranchConn.match(Pattern.java:4095) java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3383) java.util.regex.Pattern$Branch.match(Pattern.java:4131) java.util.regex.Pattern$GroupHead.match(Pattern.java:4185) java.util.regex.Pattern$CharProperty.match(Pattern.java:3362) java.util.regex.Pattern$Start.match(Pattern.java:3072) java.util.regex.Matcher.search(Matcher.java:1116) java.util.regex.Matcher.find(Matcher.java:552) com.sun.faces.el.ELUtils.isCompositeComponentExpr(ELUtils.java:195) com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:388) com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:351) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler$CompositeComponentRule$CompositeExpressionMetadata.applyMetadata(CompositeComponentTagHandler.java:588) com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81) javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129) javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.setAttributes(CompositeComponentTagHandler.java:226) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:183) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:81) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86) com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:349) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:190) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:81) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93) com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86) com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:349) com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:190) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) com.sun.faces.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:81) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload