Author: markt
Date: Thu Mar 23 21:05:09 2017
New Revision: 1788323
URL: http://svn.apache.org/viewvc?rev=1788323&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=60844
Correctly handle the error when fewer parameter values than required by the
method are used to invoke an EL method expression.
Modified:
tomcat/trunk/java/org/apache/el/util/ReflectionUtil.java
tomcat/trunk/test/org/apache/el/TestMethodExpressionImpl.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/el/util/ReflectionUtil.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/util/ReflectionUtil.java?rev=1788323&r1=1788322&r2=1788323&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/util/ReflectionUtil.java (original)
+++ tomcat/trunk/java/org/apache/el/util/ReflectionUtil.java Thu Mar 23
21:05:09 2017
@@ -184,7 +184,7 @@ public class ReflectionUtil {
if (isAssignableFrom(paramTypes[j], varType)) {
assignableMatch++;
} else {
- if (paramValues == null) {
+ if (paramValues == null || j >=
paramValues.length) {
noMatch = true;
break;
} else {
@@ -203,7 +203,7 @@ public class ReflectionUtil {
} else if (isAssignableFrom(paramTypes[i], mParamTypes[i])) {
assignableMatch++;
} else {
- if (paramValues == null) {
+ if (paramValues == null || i >= paramValues.length) {
noMatch = true;
break;
} else {
Modified: tomcat/trunk/test/org/apache/el/TestMethodExpressionImpl.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/TestMethodExpressionImpl.java?rev=1788323&r1=1788322&r2=1788323&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/el/TestMethodExpressionImpl.java (original)
+++ tomcat/trunk/test/org/apache/el/TestMethodExpressionImpl.java Thu Mar 23
21:05:09 2017
@@ -531,4 +531,11 @@ public class TestMethodExpressionImpl {
assertEquals("aaa, bbb", r.toString());
}
+
+ @Test(expected=IllegalArgumentException.class)
+ public void testBug60844() {
+ MethodExpression me2 = factory.createMethodExpression(context,
+ "${beanC.sayHello}", null , new Class[]{ TesterBeanA.class,
TesterBeanB.class});
+ me2.invoke(context, new Object[] { new Object() });
+ }
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1788323&r1=1788322&r2=1788323&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Mar 23 21:05:09 2017
@@ -130,6 +130,15 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Jasper">
+ <changelog>
+ <fix>
+ <bug>60844</bug>: Correctly handle the error when fewer parameter
values
+ than required by the method are used to invoke an EL method expression.
+ (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="jdbc-pool">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]