jglick      2005/03/28 13:43:18

  Modified:    .        WHATSNEW
               src/main/org/apache/tools/ant/taskdefs Execute.java
  Log:
  #31928: stop a forked process if the thread running <java> is stopped.
  
  Revision  Changes    Path
  1.795     +3 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.794
  retrieving revision 1.795
  diff -u -r1.794 -r1.795
  --- WHATSNEW  25 Mar 2005 12:28:59 -0000      1.794
  +++ WHATSNEW  28 Mar 2005 21:43:18 -0000      1.795
  @@ -317,6 +317,9 @@
   Fixed bugs:
   -----------
   
  +* Killing a thread running <java fork="true"> (e.g. from an IDE) would
  +  not stop the forked process. Bugzilla 31928.
  +
   * Programs run with <java fork="true"> can now accept standard input
     from the Ant console.  (Programs run with <java fork="false"> could
     already do so.)  Bugzilla 24918.
  
  
  
  1.94      +4 -4      ant/src/main/org/apache/tools/ant/taskdefs/Execute.java
  
  Index: Execute.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Execute.java,v
  retrieving revision 1.93
  retrieving revision 1.94
  diff -u -r1.93 -r1.94
  --- Execute.java      10 Mar 2005 12:50:57 -0000      1.93
  +++ Execute.java      28 Mar 2005 21:43:18 -0000      1.94
  @@ -27,11 +27,8 @@
   import java.io.StringReader;
   import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
  -import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.Iterator;
  -import java.util.Map;
  -import java.util.Set;
   import java.util.Vector;
   
   import org.apache.tools.ant.BuildException;
  @@ -40,7 +37,6 @@
   import org.apache.tools.ant.taskdefs.condition.Os;
   import org.apache.tools.ant.types.Commandline;
   import org.apache.tools.ant.util.FileUtils;
  -import org.apache.tools.ant.util.JavaEnvUtils;
   
   /**
    * Runs an external program.
  @@ -485,6 +481,10 @@
                   watchdog.checkException();
               }
               return getExitValue();
  +        } catch (ThreadDeath t) {
  +            // #31928: forcibly kill it before continuing.
  +            process.destroy();
  +            throw t;
           } finally {
               // remove the process to the list of those to destroy if
               // the VM exits
  
  
  

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

Reply via email to