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

--- Comment #5 from Konstantin Kolinko <knst.koli...@gmail.com> ---
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).


[1]
http://docs.oracle.com/javaee/7/api/javax/el/MethodExpression.html#invoke%28javax.el.ELContext,%20java.lang.Object[]%29

[2]
http://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#invoke-java.lang.Object-java.lang.Object...-

-- 
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