tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r930653 - /tomcat/trunk/java/org/apache/el/parser/AstValue.java
Date Sun, 04 Apr 2010 10:09:19 GMT
Author: markt
Date: Sun Apr  4 10:09:18 2010
New Revision: 930653

URL: http://svn.apache.org/viewvc?rev=930653&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48914
Invoke should use parameters provided in expression in preference to parameters provided in
invoke() call

Modified:
    tomcat/trunk/java/org/apache/el/parser/AstValue.java

Modified: tomcat/trunk/java/org/apache/el/parser/AstValue.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstValue.java?rev=930653&r1=930652&r2=930653&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstValue.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstValue.java Sun Apr  4 10:09:18 2010
@@ -216,11 +216,23 @@ public final class AstValue extends Simp
     public Object invoke(EvaluationContext ctx, 
             @SuppressWarnings("unchecked") Class[] paramTypes,
             Object[] paramValues) throws ELException {
+        
         Target t = getTarget(ctx);
-        Method m = ReflectionUtil.getMethod(t.base, t.property, paramTypes);
+        Method m = null;
+        Object[] values = null;
+        if (isParametersProvided()) {
+            Class<?>[] types = ((AstMethodParameters)
+                    this.jjtGetChild(2)).getParameterTypes(ctx);
+            values = ((AstMethodParameters)
+                    this.jjtGetChild(2)).getParameters(ctx);
+            m = ReflectionUtil.getMethod(t.base, t.property, types);
+        } else {
+            m = ReflectionUtil.getMethod(t.base, t.property, paramTypes);
+            values = paramValues;
+        }
         Object result = null;
         try {
-            result = m.invoke(t.base, paramValues);
+            result = m.invoke(t.base, values);
         } catch (IllegalAccessException iae) {
             throw new ELException(iae);
         } catch (IllegalArgumentException iae) {



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


Mime
View raw message