On 26/05/2010 01:22, Mark Thomas wrote:
> On 25/05/2010 20:35, John Wu wrote:
>> Same failure observed on Tomcat 7 RC1 and RC2.
> 
> I can now reproduce this. The fix is next on my todo list.
> 
> Note I echo Konstantin's comments about trying to get EL 2.2 working in
> Tomcat 6. If it works, great - but it will be by luck rather than
> design. If it doesn't, it isn't going to get fixed. Tomact 6 supports EL
> 2.1. EL 2.2 support requires Tomcat 7.

I have fixed in this in trunk.

The old implementation used getType() to determine the types for each of
the parameters. This ultimately called:
org.apache.myfaces.el.unified.resolver.ScopedAttributeResolver.getType()
which is hard-coded to return java.lang.Object for all input. This
triggered the problem since the EL could not find a
doSomething(java.lang.Object) method. While this behaviour does seem a
little odd at first glance, I think it is correct since the JavaDoc says
for getType(ELContext, Object, Object):
<quote>
For a given base and property, attempts to identify the most general
type that is acceptable for an object to be passed as the value
parameter in a future call to the setValue(ELContext, Object, Object,
Object)66 method.
</quote>
In this case, scoped attributes can be of any class so returning Object
is correct.

I have modified Tomcat to derive the type directly from the value which
will always return the actual type. This fixes the provided test case
which now works as expected with Tomact 7 trunk.

Thanks for the test case. It made getting to the bottom of this a lot
easier.

Mark



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to