Author: markt
Date: Wed Jul 17 20:07:48 2013
New Revision: 1504256
URL: http://svn.apache.org/r1504256
Log:
More nested lambda expression fixes.
Includes another test case and some simple debug code aimed at IDE debuggers.
Modified:
tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java
tomcat/trunk/java/org/apache/el/parser/AstLambdaParameters.java
tomcat/trunk/java/org/apache/el/parser/AstMethodParameters.java
tomcat/trunk/test/org/apache/el/parser/TestAstLambdaExpression.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=1504256&r1=1504255&r2=1504256&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstLambdaExpression.java Wed Jul 17
20:07:48 2013
@@ -95,9 +95,24 @@ public class AstLambdaExpression extends
result = ((LambdaExpression) result).invoke(
((AstMethodParameters) children[i]).getParameters(ctx));
i++;
+ while (i < jjtGetNumChildren() && children[i].jjtGetNumChildren()
== 0) {
+ i++;
+ }
}
return result;
}
+
+
+ @Override
+ public String toString() {
+ // Purely for debug purposes. May not be complete or correct. Certainly
+ // is not efficient. Be sure not to call this from 'real' code.
+ StringBuilder result = new StringBuilder();
+ for (Node n : children) {
+ result.append(n.toString());
+ }
+ return result.toString();
+ }
}
/* JavaCC - OriginalChecksum=071159eff10c8e15ec612c765ae4480a (do not edit
this line) */
Modified: tomcat/trunk/java/org/apache/el/parser/AstLambdaParameters.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstLambdaParameters.java?rev=1504256&r1=1504255&r2=1504256&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstLambdaParameters.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstLambdaParameters.java Wed Jul 17
20:07:48 2013
@@ -17,10 +17,27 @@
/* Generated By:JJTree: Do not edit this line. AstLambdaParameters.java
Version 4.3 */
package org.apache.el.parser;
-public
-class AstLambdaParameters extends SimpleNode {
- public AstLambdaParameters(int id) {
- super(id);
- }
+public class AstLambdaParameters extends SimpleNode {
+
+ public AstLambdaParameters(int id) {
+ super(id);
+ }
+
+ @Override
+ public String toString() {
+ // Purely for debug purposes. May not be complete or correct. Certainly
+ // is not efficient. Be sure not to call this from 'real' code.
+ StringBuilder result = new StringBuilder();
+ result.append('(');
+ if (children != null) {
+ for (Node n : children) {
+ result.append(n.toString());
+ result.append(',');
+ }
+ }
+ result.append(")->");
+ return result.toString();
+ }
+
}
/* JavaCC - OriginalChecksum=a8c1609257dac59e41c43d6ed91072c6 (do not edit
this line) */
Modified: tomcat/trunk/java/org/apache/el/parser/AstMethodParameters.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstMethodParameters.java?rev=1504256&r1=1504255&r2=1504256&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstMethodParameters.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/AstMethodParameters.java Wed Jul 17
20:07:48 2013
@@ -37,4 +37,20 @@ public final class AstMethodParameters e
}
return params.toArray(new Object[params.size()]);
}
+
+ @Override
+ public String toString() {
+ // Purely for debug purposes. May not be complete or correct. Certainly
+ // is not efficient. Be sure not to call this from 'real' code.
+ StringBuilder result = new StringBuilder();
+ result.append('(');
+ if (children != null) {
+ for (Node n : children) {
+ result.append(n.toString());
+ result.append(',');
+ }
+ }
+ result.append(')');
+ return result.toString();
+ }
}
Modified: tomcat/trunk/test/org/apache/el/parser/TestAstLambdaExpression.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/el/parser/TestAstLambdaExpression.java?rev=1504256&r1=1504255&r2=1504256&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/el/parser/TestAstLambdaExpression.java
(original)
+++ tomcat/trunk/test/org/apache/el/parser/TestAstLambdaExpression.java Wed Jul
17 20:07:48 2013
@@ -116,7 +116,7 @@ public class TestAstLambdaExpression {
}
- @Test(expected=ELException.class)
+ @Test
public void testNested04() {
ELProcessor processor = new ELProcessor();
Object result =
@@ -124,4 +124,14 @@ public class TestAstLambdaExpression {
Integer.class);
Assert.assertEquals(Integer.valueOf(1), result);
}
+
+
+ @Test
+ public void testNested05() {
+ ELProcessor processor = new ELProcessor();
+ Object result =
+ processor.getValue("(()->y->()->()->x->x-y)()(1)()()(2)",
+ Integer.class);
+ Assert.assertEquals(Integer.valueOf(1), result);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]