myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2561) StackOverflowError if a composite component implementation uses another composite component
Date Thu, 18 Feb 2010 17:20:27 GMT

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

Leonardo Uribe commented on MYFACES-2561:
-----------------------------------------

The problem is do something like this is valid and it should work.

#{cc.attr.property1  == component.property2}

it is possible to imagine other expressions like that (but maybe not very common). Suppose
every el expression that makes reference to cc does not for component is risky. It is preferred
to "push" the component instance somewhere else (UIComponent.pushComponentToEL uses facescontext
attribute map, so maybe we can create another stack for this specific case, or maybe use a
stack is not necessary).

> 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
>         Attachments: MYFACES-2561.patch, test.xhtml, test1.xhtml, test2.xhtml
>
>
> 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.


Mime
View raw message