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]