You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by he...@apache.org on 2019/11/01 17:13:59 UTC
[commons-jexl] branch master updated: JEXL: potential (317) issue
on method chaining ?
This is an automated email from the ASF dual-hosted git repository.
henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new ddbe2c9 JEXL: potential (317) issue on method chaining ?
ddbe2c9 is described below
commit ddbe2c925cb076aeb28ed3ec77997ddf00872d00
Author: Henri Biestro <hb...@gmail.com>
AuthorDate: Fri Nov 1 18:13:43 2019 +0100
JEXL: potential (317) issue on method chaining ?
---
.../org/apache/commons/jexl3/Issues300Test.java | 40 +++++++++++++++++-----
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/src/test/java/org/apache/commons/jexl3/Issues300Test.java b/src/test/java/org/apache/commons/jexl3/Issues300Test.java
index 9d84031..d2b45ec 100644
--- a/src/test/java/org/apache/commons/jexl3/Issues300Test.java
+++ b/src/test/java/org/apache/commons/jexl3/Issues300Test.java
@@ -169,7 +169,7 @@ public class Issues300Test {
o = e.execute(null);
Assert.assertEquals(2, o);
}
-
+
@Test
public void testIssue306d() throws Exception {
JexlEngine jexl = new JexlBuilder().safe(true).create();
@@ -179,7 +179,7 @@ public class Issues300Test {
o = e.execute(null);
Assert.assertEquals(2, o);
}
-
+
@Test
public void testIssue309a() throws Exception {
String src = "<html lang=\"en\">\n"
@@ -238,7 +238,7 @@ public class Issues300Test {
Assert.assertEquals(4, xerror.getInfo().getLine());
}
}
-
+
public static class VaContext extends MapContext {
VaContext(Map<String, Object> vars) {
super(vars);
@@ -246,7 +246,7 @@ public class Issues300Test {
public int cell(String... ms) {
return ms.length == 0 ? 0 : ms.length;
}
-
+
public int cell(List<?> l, String...ms) {
return 42 + cell(ms);
}
@@ -271,28 +271,28 @@ public class Issues300Test {
script = jexl.createScript("x.cell('1', '2')", "x");
result = script.execute(ctxt, Arrays.asList(10, 20));
Assert.assertEquals(44, result);
-
+
vars.put("TVALOGAR", null);
String jexlExp = "TVALOGAR==null?'SIMON':'SIMONAZO'";
script = jexl.createScript(jexlExp);
result = script.execute(ctxt);
Assert.assertEquals("SIMON", result);
-
+
jexlExp = "TVALOGAR.PEPITO==null?'SIMON':'SIMONAZO'";
script = jexl.createScript(jexlExp);
-
+
Map<String, Object> tva = new LinkedHashMap<String, Object>();
tva.put("PEPITO", null);
vars.put("TVALOGAR", tva);
result = script.execute(ctxt);
Assert.assertEquals("SIMON", result);
-
+
vars.remove("TVALOGAR");
ctxt.set("TVALOGAR.PEPITO", null);
result = script.execute(ctxt);
Assert.assertEquals("SIMON", result);
}
-
+
@Test
public void test315() throws Exception {
JexlEngine jexl = new JexlBuilder().strict(true).create();
@@ -323,4 +323,26 @@ public class Issues300Test {
result = script.execute(ctxt, (Object) null);
Assert.assertEquals(52, result);
}
+
+ public static class ClazzB {
+ public int methodB() {
+ return 42;
+ }
+ }
+ public static class ClazzA {
+ public ClazzB methodA() {
+ return new ClazzB();
+ }
+ }
+
+ @Test
+ public void test317Tentative() throws Exception {
+ JexlEngine jexl = new JexlBuilder().strict(true).create();
+ JexlContext ctxt = new MapContext();
+ JexlScript script;
+ Object result;
+ script = jexl.createScript("x.methodA().methodB()", "x");
+ result = script.execute(ctxt, new ClazzA());
+ Assert.assertEquals(42, result);
+ }
}