myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerhard Petracek <gerhard.petra...@gmail.com>
Subject Re: ExtVal: PropertyNotFoundException for nested composite components
Date Mon, 19 Jul 2010 10:35:26 GMT
hi tom,

extval tries to initialize input components before they get rendered. so you
see the exception quite early.
i haven't analyzed the details of the example - however, if you deactivate
extval (via vm parameter), you will see the same issue at the next postback.

so you are right - it is >not< an issue of extval.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/7/19 Gerhard Petracek <gerhard.petracek@gmail.com>

> hi tom,
>
> i'll have a look at the example.
>
> regards,
> gerhard
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
>
>
> 2010/7/19 <mynewsgroups@arcor.de>
>
> Hi at all,
>>
>> I found a bug which I think is a jsf problem rather than for ExtVal, but
>> since the code refers to https://issues.apache.org/jira/browse/EXTVAL-102I would
like you to check it too:
>>
>> Exception is javax.el.PropertyNotFoundException:
>> /resources/parts/partbase.xhtml @23,53 value="#{cc.attrs.child.value}":
>> Target Unreachable, 'child' returned null
>>
>> which occurs in
>> org.apache.myfaces.extensions.validator.core.el.DefaultELHelper
>>
>>  private void inspectTarget(ValueExpression valueExpression, ELContext
>> elContext, boolean inspectCompositeComponent)
>>    {
>>        try
>>        {
>>            valueExpression.setValue(elContext, null);
>>        }
>>        catch (Throwable t)
>>        {
>>            if(inspectCompositeComponent)
>>            {
>>                throw new IllegalStateException(
>>                        "error at binding: " +
>> valueExpression.getExpressionString() +
>>                                " -- an el-resolver error occurred! maybe
>> you used an invalid binding.", t);
>>            }
>>        }
>>    }
>>
>> after runnign throug ExtVal-102 code:
>>
>> public PropertyDetails getPropertyDetailsOfValueBinding(UIComponent
>> uiComponent)
>>    {
>>       ...
>>
>>        //see EXTVAL-102
>>        if (elResolver.getBaseObject() instanceof
>> CompositeComponentExpressionHolder)
>>        {
>>            ValueExpression newValueExpression =
>> ((CompositeComponentExpressionHolder) elResolver.getBaseObject())
>>                    .getExpression(elResolver.getProperty());
>>
>>            if (newValueExpression != null)
>>            {
>>                elResolver = createWrappedELContext(facesContext);
>>                inspectTarget(newValueExpression,
>>                        ExtValELResolver.createContextWrapper(
>>                                facesContext.getELContext(), elResolver),
>> false); --> Exception!
>>            }
>>        }
>>
>>
>> I provided a simple war project containing templates and simple classes
>> (bean --> parent class --> child class with string value):
>> http://www.humyo.de/10453303/TestProject.war?a=W0dLMKgfIko
>>
>> The problem seems to come from
>> com.sun.faces.component.CompositeComponentStackManager.findCompositeComponentUsingLocation(FacesContext,
>> Location), where the location of composite components fails for my example.
>>
>> Thanks.
>>
>> --
>> E-Cards: Schon fertig für die ganz Eiligen oder individuell zum
>> Selbstgestalten - für jeden Anlass gibt´s die richtige E-Card auf
>> arcor.de.
>> http://www.arcor.de/rd/footer.ecard
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message