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