https://bz.apache.org/bugzilla/show_bug.cgi?id=57855

--- Comment #7 from Christian Strebel <christian.stre...@ivyteam.ch> ---
(In reply to Konstantin Kolinko from comment #5)
> I think MethodExpression.invoke() shall wrap IllegalArgumentException into
> an ELException.
> 
> 
> It is documented that java.lang.reflect.Method.invoke() throws
> IllegalArgumentException when "if the number of actual and formal parameters
> differ" [2].
> 
> I think that our code should work as if that exception were thrown by
> Method.invoke(). From MethodExpression.invoke() [1] I think that an
> exception that is received from a Method.invoke() has to be wrapped with an
> ELException.
> 
> Essentially this means to move "values = convertArgs(values, m);" call into
> try/catch block that is around "result = m.invoke(t.base, values);" call.
> (lines 274 278 of AstValue.java of Tomcat 7 r1676234).

The problem is, the "bad" PrimeFaces AjaxBehaviorListenerImpl implementation is
then broken again. Also I do not like wrapping a specific RuntimeException into
an unspecific RuntimeExcpetion without additional information.
But on the other hand you are right there is already a wrapping if an
IllegalAccessException or an IllegalArgumentException is thrown by
Method.invoke().
I also do not really like this wrapping. The Sun/Glassfish implementation does
not wrap the runtime exceptions thrown by Method.invoke() as well.

-- 
You are receiving this mail because:
You are the assignee for the bug.

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

Reply via email to