antoine 2003/08/28 06:46:33
Modified: docs/manual/CoreTasks java.html
src/etc/testcases/taskdefs java.xml
src/main/org/apache/tools/ant/taskdefs Java.java
src/testcases/org/apache/tools/ant/taskdefs JavaTest.java
Log:
Set default permissions appropriate to fail the builds when failonerror is
true (and fork false) and no other permissions were set.
Suggestion of Steve Loughran.
Revision Changes Path
1.22 +6 -1 ant/docs/manual/CoreTasks/java.html
Index: java.html
===================================================================
RCS file: /home/cvs/ant/docs/manual/CoreTasks/java.html,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- java.html 27 Aug 2003 14:23:16 -0000 1.21
+++ java.html 28 Aug 2003 13:46:33 -0000 1.22
@@ -88,7 +88,7 @@
<tr>
<td valign="top">failonerror</td>
<td valign="top">Stop the buildprocess if the command exits with a
- returncode other than 0. Default is "false"</td>
+ returncode other than 0. Default is "false"(see <a
href="#failonerror">note</a>)</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
@@ -220,6 +220,11 @@
<p>When the permission RuntimePermission exitVM has not been granted (or has
been revoked) the System.exit() call will be intercepted
and treated like indicated in <i>failonerror</i>.</p>
+<p><a name="failonerror"/>
+If you specify <code>failonerror="true"</code> and you do not
specify permissions,
+a set of default permissions will be added to your java invocation making
sure that
+a non zero return code will lead to a <code>BuildException</code>.
+</p>
<p>Settings will be ignored if fork is enabled.</p>
1.11 +16 -0 ant/src/etc/testcases/taskdefs/java.xml
Index: java.xml
===================================================================
RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/java.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- java.xml 27 Aug 2003 19:12:42 -0000 1.10
+++ java.xml 28 Aug 2003 13:46:33 -0000 1.11
@@ -139,7 +139,23 @@
<echo message="exitcode = ${exitcode}"/>
</target>
+ <target name="testRunFailWithFailOnError">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ >
+ <arg value="2"/>
+ </java>
+ </target>
+ <target name="testRunSuccessWithFailOnError">
+ <java classname="${app}"
+ classpath="${tests-classpath.value}"
+ failonerror="true"
+ >
+ <arg value="0"/>
+ </java>
+ </target>
<target name="testSpawn">
<java classname="${spawnapp}" fork="true" spawn="true"
classpath="${tests-classpath.value}">
1.71 +8 -1 ant/src/main/org/apache/tools/ant/taskdefs/Java.java
Index: Java.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Java.java,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- Java.java 27 Aug 2003 14:23:16 -0000 1.70
+++ Java.java 28 Aug 2003 13:46:33 -0000 1.71
@@ -97,7 +97,7 @@
private Long timeout = null;
private Redirector redirector = new Redirector(this);
private String resultProperty;
- private Permissions perm;
+ private Permissions perm = null;
private boolean spawn = false;
private boolean incompatibleWithSpawn = false;
@@ -108,6 +108,7 @@
*/
public void execute() throws BuildException {
File savedDir = dir;
+ Permissions savedPermissions = perm;
int err = -1;
try {
@@ -122,6 +123,7 @@
maybeSetResultPropertyValue(err);
} finally {
dir = savedDir;
+ perm = savedPermissions;
}
}
@@ -179,6 +181,11 @@
Project.MSG_WARN);
}
+ if (perm == null && failOnError == true) {
+ perm = new Permissions();
+ log("running " + this.cmdl.getClassname()
+ + " with default permissions (exit forbidden)",
Project.MSG_VERBOSE);
+ }
log("Running in same VM " + cmdl.describeJavaCommand(),
Project.MSG_VERBOSE);
}
1.15 +9 -0
ant/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java
Index: JavaTest.java
===================================================================
RCS file:
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- JavaTest.java 27 Aug 2003 14:23:17 -0000 1.14
+++ JavaTest.java 28 Aug 2003 13:46:33 -0000 1.15
@@ -196,6 +196,15 @@
assertEquals("-1",project.getProperty("exitcode"));
}
+ public void testRunFailWithFailOnError() {
+ expectBuildExceptionContaining("testRunFailWithFailOnError",
+ "non zero return code",
+ "Java returned:");
+ }
+
+ public void testRunSuccessWithFailOnError() {
+ executeTarget("testRunSuccessWithFailOnError");
+ }
public void testSpawn() {
FileUtils fileutils = FileUtils.newFileUtils();
File logFile = fileutils.createTempFile("spawn","log",
project.getBaseDir());
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]