https://bz.apache.org/bugzilla/show_bug.cgi?id=57855
Bug ID: 57855
Summary: Invoke MethodExpression with wrong pram count results
in ArrayIndexOutOfBoundsException
Product: Tomcat 8
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: EL
Assignee: [email protected]
Reporter: [email protected]
To reproduce add the following test code to TestMethodExpressionImpl:
@Test(expected=IllegalArgumentException.class)
public void test() {
MethodExpression me = factory.createMethodExpression(context,
"${beanAA.echo2}", null , new Class[]{String.class});
me.invoke(context, new Object[0]);
}
The result is an ArrayIndexOutOfBoundsException. I would expect an
IllegalArgumentException or a MethodNotFoundException.
The same I would expect if I invoke with null:
@Test(expected=IllegalArgumentException.class)
public void testNull() {
MethodExpression me = factory.createMethodExpression(context,
"${beanAA.echo2}", null , new Class[]{String.class});
me.invoke(context, null);
}
But this throws a NullPointerException instead.
I run into this because PrimeFaces handles AjaxListeners relatively bad and
expect that there is a MethodNotFoundException or an IllegalArgumentException
if they call a listener method with no pram.
try {
listener.invoke(elContext, new Object[]{});
}
catch (MethodNotFoundException mnfe) {
processArgListener(context, elContext, event);
}
catch (IllegalArgumentException iae) {
processArgListener(context, elContext, event);
}
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]