You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/07/15 20:04:49 UTC

svn commit: r1503386 - /tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java

Author: markt
Date: Mon Jul 15 18:04:49 2013
New Revision: 1503386

URL: http://svn.apache.org/r1503386
Log:
Fix infinite loop

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

Modified: tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java?rev=1503386&r1=1503385&r2=1503386&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java Mon Jul 15 18:04:49 2013
@@ -40,23 +40,24 @@ public class AstLambdaExpression extends
                 (AstLambdaParameters) children[0];
         Node[] formalParamNodes = formalParametersNode.children;
 
-        if (formalParamNodes == null || formalParamNodes.length == 0) {
-            // No formal parameters - should be able to simply invoke this
-            return invoke(ctx, null, null);
-        } else {
-            // Has parameters but they aren't provided so build a
-            // LambdaExpression
-            List<String> formalParameters =
-                    new ArrayList<>(formalParamNodes.length);
+        // Build a LambdaExpression
+        List<String> formalParameters = new ArrayList<>();
+        if (formalParamNodes != null) {
             for (Node formalParamNode : formalParamNodes) {
                 formalParameters.add(formalParamNode.getImage());
             }
+        }
 
-            ValueExpressionImpl ve = new ValueExpressionImpl("", children[1],
-                    ctx.getFunctionMapper(), ctx.getVariableMapper(), null);
-            LambdaExpression le = new LambdaExpression(formalParameters, ve);
-            le.setELContext(ctx);
+        ValueExpressionImpl ve = new ValueExpressionImpl("", children[1],
+                ctx.getFunctionMapper(), ctx.getVariableMapper(), null);
+        LambdaExpression le = new LambdaExpression(formalParameters, ve);
+        le.setELContext(ctx);
 
+        if (formalParameters.size() == 0) {
+            // No formal parameters - should be able to simply invoke this
+            return le.invoke(ctx, (Object[]) null);
+        } else {
+            // Has parameters but they aren't provided so return the
             return le;
         }
     }



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