[ https://issues.apache.org/jira/browse/MYFACES-4099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15877057#comment-15877057 ]
Leonardo Uribe commented on MYFACES-4099: ----------------------------------------- Attached potential patch for this issue. I need to study it and create some junit tests, to see if it works as expected or not. This is a sensible change, so we need to do proper tests check multiple possible situations. > Allow resolve #{cc} inside templates called from a composite component > ---------------------------------------------------------------------- > > Key: MYFACES-4099 > URL: https://issues.apache.org/jira/browse/MYFACES-4099 > Project: MyFaces Core > Issue Type: Improvement > Affects Versions: 2.2.12 > Reporter: Thomas Andraschko > Assignee: Leonardo Uribe > Attachments: TagAttributeImpl.java.patch > > > It has been reported this scenario: > {code:xml} > <cc:implementation> > <ui:include src="#{cc.page}"/> > </cc:implementation> > {code} > In the included page: > {code:xml} > <ui:composition ...> > <test:anoterCompositeComponent locale="#{cc.someProperty}"/> > </ui:composition> > {code} > The problem right now is such kind of indirection has not been taken into > account for #{cc} EL resolution algorithm. It is supposed that any resolution > of #{cc} happens inside the composite component .xhtml and not indirectly > through a template like is happening in the previous example. > This code leads to an StackOverflowException, because the algorithm cannot > find the right composite component and by default it takes the closest one. > In MyFaces it is possible to pass the values as parameters of ui:include, but > the point is it is better if we allow these example to work. > Please note this is not a bug. This looks like an improvement. The challenge > here is expressions using #{cc} outside a composite component xhtml are not > cacheable, so we need to study if this improvement can be done or not. -- This message was sent by Atlassian JIRA (v6.3.15#6346)