myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (Commented) (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3383) Self nested Composite Component leads to EL Stack Overflow
Date Fri, 04 Nov 2011 20:49:51 GMT

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

Leonardo Uribe commented on MYFACES-3383:
-----------------------------------------

I have checked the example provided, and unfortunately this is not going to work with the
current strategy to resolve cc expressions.

In few words, org.apache.myfaces.view.facelets.tag.TagAttributeImpl wraps every expression
that resolve cc into a LocationValueExpression, and use the Location object to find the right
instance. This hack has worked well so far but obviously fails in this case, because Location
object is the same per composite component, and does not keep into account the position of
the component in the tree, which is relevant in this case.

This is a very, very rare use case. Solve this problem will not going to be easy.
                
> Self nested Composite Component leads to EL Stack Overflow
> ----------------------------------------------------------
>
>                 Key: MYFACES-3383
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3383
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.2
>         Environment: Windows
>            Reporter: Michael Dietrich
>         Attachments: TestStackOverflow.war
>
>
> If the same Composite Component is used inside itself, e.g. as child of an ui:include
that is included in the Composite Component, an StackOverflow happens, if an EL Expression
is refering CC interface attributes. 
> The use case is a CC to include a facelet, given by name. If the included facelet uses
the same CC to include another facelet, "CompositeComponentELUtils.getCompositeComponentBasedOnLocation(..)"
 does always find the same CC, which leads to an endless loop.
> Please see the attached file for an example of the issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message