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