You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Jakob Korherr (JIRA)" <de...@myfaces.apache.org> on 2010/02/16 15:27:28 UTC

[jira] Commented: (MYFACES-2561) StackOverflowError if a composite component implementation uses another composite component

    [ https://issues.apache.org/jira/browse/MYFACES-2561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12834227#action_12834227 ] 

Jakob Korherr commented on MYFACES-2561:
----------------------------------------

To run into the StackOverflowError both composite components need to have the same attribute name and use this attribute in their implementation.

Example:
component test1:

<cc:interface name="test1">
    <cc:attribute name="test" required="true" />
</cc:interface>
<cc:implementation>
    test1
    <t2:test2 test="#{cc.attrs.test}" />
</cc:implementation>

component test2:

<cc:interface name="test2">
    <cc:attribute name="test" required="true" />
</cc:interface>
<cc:implementation>
    test2
    #{cc.attrs.test}
</cc:implementation>

> StackOverflowError if a composite component implementation uses another composite component
> -------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-2561
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2561
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.0-beta-3
>            Reporter: Jakob Korherr
>            Assignee: Jakob Korherr
>
> If you use another composite component in your composite component's implementation you will get a StackOverflowError.
> javax.faces.FacesException: java.lang.StackOverflowError
> 	at org.apache.myfaces.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
> 	at org.apache.myfaces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:216)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
> 	at java.lang.Thread.run(Thread.java:637)
> Caused by: java.lang.StackOverflowError
> 	at java.util.ArrayList.toArray(ArrayList.java:306)
> 	at java.util.logging.Logger.getHandlers(Logger.java:1200)
> 	at java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:1019)
> 	at java.util.logging.Logger.log(Logger.java:454)
> 	at java.util.logging.Logger.doLog(Logger.java:480)
> 	at java.util.logging.Logger.logp(Logger.java:680)
> 	at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:167)
> 	at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135)
> 	at org.apache.catalina.connector.Request.setAttribute(Request.java:1448)
> 	at org.apache.catalina.connector.RequestFacade.setAttribute(RequestFacade.java:503)
> 	at org.apache.myfaces.context.servlet.RequestMap.setAttribute(RequestMap.java:53)
> 	at org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:113)
> 	at org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:1)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.setScope(FacesCompositeELResolver.java:191)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:139)
> 	at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:107)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84)
> 	at org.apache.myfaces.el.unified.resolver.CompositeComponentELResolver$CompositeComponentAttributesMapWrapper.get(CompositeComponentELResolver.java:245)
> 	at javax.el.MapELResolver.getValue(MapELResolver.java:51)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84)
> 	at org.apache.myfaces.el.unified.resolver.CompositeComponentELResolver$CompositeComponentAttributesMapWrapper.get(CompositeComponentELResolver.java:245)
> 	at javax.el.MapELResolver.getValue(MapELResolver.java:51)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84)
> 	at org.apache.myfaces.el.unified.resolver.CompositeComponentELResolver$CompositeComponentAttributesMapWrapper.get(CompositeComponentELResolver.java:245)
> 	at javax.el.MapELResolver.getValue(MapELResolver.java:51)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
> 	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
> 	at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84)
> 	at org.apache.myfaces.el.unified.resolver.CompositeComponentELResolver$CompositeComponentAttributesMapWrapper.get(CompositeComponentELResolver.java:245)
> 	at javax.el.MapELResolver.getValue(MapELResolver.java:51)
> 	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
> 	at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
> 	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
> ......
> ......

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.