diff options
author | Matt Benson <mbenson@apache.org> | 2022-02-14 15:04:16 -0600 |
---|---|---|
committer | Matt Benson <mbenson@apache.org> | 2022-02-14 15:04:16 -0600 |
commit | 413f5c0dea3bba8cd2d7f71e65281f0256f77665 (patch) | |
tree | 7cbc7aef2965574e63fc3f45c01dda64a07f056d | |
parent | c59f8a28c3808242c8340a25ac5989ce9bc6c744 (diff) | |
download | ant-413f5c0dea3bba8cd2d7f71e65281f0256f77665.tar.gz |
make scriptcondition behave as documented wrt script return value
-rw-r--r-- | src/main/org/apache/tools/ant/types/optional/ScriptCondition.java | 4 | ||||
-rw-r--r-- | src/tests/antunit/types/optional/scriptcondition-test.xml | 16 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java b/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java index a67588f50..d3fbe9ea1 100644 --- a/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java +++ b/src/main/org/apache/tools/ant/types/optional/ScriptCondition.java @@ -44,8 +44,8 @@ public class ScriptCondition extends AbstractScriptComponent implements Conditio @Override public boolean eval() throws BuildException { initScriptRunner(); - executeScript("ant_condition"); - return getValue(); + final Object result = getRunner().evaluateScript("ant_condition"); + return Boolean.TRUE.equals(result) || getValue(); } /** diff --git a/src/tests/antunit/types/optional/scriptcondition-test.xml b/src/tests/antunit/types/optional/scriptcondition-test.xml index 3fb4f6085..16d4af118 100644 --- a/src/tests/antunit/types/optional/scriptcondition-test.xml +++ b/src/tests/antunit/types/optional/scriptcondition-test.xml @@ -68,4 +68,20 @@ </au:assertFalse> </target> + <target name="test-return-value-true"> + <au:assertTrue> + <scriptcondition language="beanshell"> + true + </scriptcondition> + </au:assertTrue> + </target> + + <target name="test-return-value-false"> + <au:assertTrue> + <scriptcondition language="beanshell" value="true"> + false + </scriptcondition> + </au:assertTrue> + </target> + </project> |