Author: stevel
Date: Tue May  9 13:25:48 2006
New Revision: 405524

URL: http://svn.apache.org/viewcvs?rev=405524&view=rev
Log:
Adding a new non-static method, isFailure() to Execute. As well as simplifying 
a common operation, it is a foundation for instance specific logic to decide if 
an execute failed, which could be of use in VMS land.

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Execute.java
    
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java
    
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/ExecuteWatchdogTest.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Execute.java
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Execute.java?rev=405524&r1=405523&r2=405524&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Execute.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Execute.java Tue May  
9 13:25:48 2006
@@ -47,7 +47,9 @@
  */
 public class Execute {
 
-    /** Invalid exit code. **/
+    /** Invalid exit code. 
+     * set to [EMAIL PROTECTED] Integer#MAX_VALUE}
+     */
     public static final int INVALID = Integer.MAX_VALUE;
 
     private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
@@ -584,6 +586,16 @@
         // for other platforms nonzero exit value signals failure
         return Os.isFamily("openvms")
             ? (exitValue % 2 == 0) : (exitValue != 0);
+    }
+
+    /**
+     * Did this execute return in a failure.
+     * @see #isFailure(int) 
+     * @return true if and only if the exit code is interpreted as a failure
+     * @since Ant1.7
+     */
+    public boolean isFailure() {
+        return isFailure(getExitValue());
     }
 
     /**

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java?rev=405524&r1=405523&r2=405524&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java 
(original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/rmic/ForkingSunRmic.java 
Tue May  9 13:25:48 2006
@@ -65,9 +65,8 @@
             exe.setAntRun(project);
             exe.setWorkingDirectory(project.getBaseDir());
             exe.setCommandline(args);
-
             exe.execute();
-            return exe.getExitValue() == 0;
+            return !exe.isFailure();
         } catch (IOException exception) {
             throw new BuildException("Error running " + SunRmic.RMIC_EXECUTABLE
                     + " -maybe it is not on the path", exception);

Modified: 
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/ExecuteWatchdogTest.java
URL: 
http://svn.apache.org/viewcvs/ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/ExecuteWatchdogTest.java?rev=405524&r1=405523&r2=405524&view=diff
==============================================================================
--- 
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/ExecuteWatchdogTest.java
 (original)
+++ 
ant/core/trunk/src/testcases/org/apache/tools/ant/taskdefs/ExecuteWatchdogTest.java
 Tue May  9 13:25:48 2006
@@ -27,12 +27,12 @@
  */
 public class ExecuteWatchdogTest extends TestCase {
 
-    private final static int TIME_OUT = 5000;
+    private final static long TIME_OUT = 5000;
 
     private final static String TEST_CLASSPATH = getTestClassPath();
 
     private final static int CLOCK_ERROR=200;
-    private final static int TIME_OUT_TEST=TIME_OUT-CLOCK_ERROR;
+    private final static long TIME_OUT_TEST=TIME_OUT-CLOCK_ERROR;
 
     private ExecuteWatchdog watchdog;
 
@@ -58,7 +58,7 @@
         return classpath;
     }
 
-    private Process getProcess(int timetorun) throws Exception {
+    private Process getProcess(long timetorun) throws Exception {
         String[] cmdArray = {
             JavaEnvUtils.getJreExecutable("java"), "-classpath", 
TEST_CLASSPATH,
             TimeProcess.class.getName(), String.valueOf(timetorun)
@@ -94,7 +94,7 @@
         watchdog.start(process);
         int retCode = waitForEnd(process);
         assertTrue("process should not have been killed", 
!watchdog.killedProcess());
-        assertEquals(0, retCode);
+        assertFalse(Execute.isFailure(retCode));
     }
 
     // test that the watchdog ends the process



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to