summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Benson <mbenson@apache.org>2022-02-14 15:04:16 -0600
committerMatt Benson <mbenson@apache.org>2022-02-14 15:04:16 -0600
commit413f5c0dea3bba8cd2d7f71e65281f0256f77665 (patch)
tree7cbc7aef2965574e63fc3f45c01dda64a07f056d
parentc59f8a28c3808242c8340a25ac5989ce9bc6c744 (diff)
downloadant-413f5c0dea3bba8cd2d7f71e65281f0256f77665.tar.gz
make scriptcondition behave as documented wrt script return value
-rw-r--r--src/main/org/apache/tools/ant/types/optional/ScriptCondition.java4
-rw-r--r--src/tests/antunit/types/optional/scriptcondition-test.xml16
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>