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

Thomas Andraschko commented on MYFACES-4589:
--------------------------------------------

it seems the default order of the ELResolver isnt correct anymore, i will check 
that

we likely moved CDI to the end for performance reasons

please see: https://myfaces.apache.org/#/coreConceptsELResolverOrdering

> PropertyNotFoundException in nested components if attribute has same name as 
> bean
> ---------------------------------------------------------------------------------
>
>                 Key: MYFACES-4589
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4589
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 4.0.0, 4.0.1
>         Environment: primefaces-test project, jakarta branch
>            Reporter: Manuel K
>            Priority: Major
>
> I apologize in advance if this one is a SOB to debug and hopefully fix. Maybe 
> not though?
> Given the following nested component structure:
> panel (composite component) -> panel (taglib component) -> departmentInfo 
> (composite component) -> outputIconText (composite component) -> icon (taglib 
> component)
> The panel composite component and the panel taglib component have an 
> attribute called "color". The departmentInfo component uses "color" in an EL 
> expression, which is supposed to be a call to a named bean "Color":
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <ui:component xmlns="http://www.w3.org/1999/xhtml";
>               xmlns:cc="http://xmlns.jcp.org/jsf/composite";
>               xmlns:ui="http://xmlns.jcp.org/jsf/facelets";
>               xmlns:test="http://xmlns.jcp.org/jsf/composite/components";>
>     <cc:interface>
>         <cc:attribute name="value"
>                       required="true"
>                       type="org.primefaces.test.Department"/>
>     </cc:interface>
>     <cc:implementation>
>         <div id="#{cc.clientId}">
>             <test:outputIconText icon="#{icon.test} #{color.blue}"
>                                  value="#{cc.attrs.value.name}"/>
>         </div>
>     </cc:implementation>
> </ui:component> {code}
> Somehow it seems to be interpreted as the attribute though, because the 
> following exception occurs:
> {code:java}
> Caused by: jakarta.el.PropertyNotFoundException: Property [blue] not found on 
> type [java.lang.String]
>     at jakarta.el.BeanELResolver$BeanProperties.get (BeanELResolver.java:251) 
> {code}
> The exception occurs only using MyFaces ({_}mvn clean jetty:run 
> -Pmyfaces40{_}) but works using Mojarra ({_}mvn clean jetty:run 
> -Pmojarra40{_}). You can find my reproducer here: 
> [https://github.com/mkomko/primefaces-test/tree/expression-error-property-not-found]
> Of course, _org.apache.myfaces.STRICT_JSF_2_FACELETS_COMPATIBILITY_ is set to 
> _true_ but it does not matter in this case.
> Thank you very much in advance!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to