bodewig     2004/03/15 03:29:13

  Modified:    .        Tag: ANT_16_BRANCH WHATSNEW
               src/main/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH
                        Java.java
  Log:
  merge
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.503.2.60 +3 -0      ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.503.2.59
  retrieving revision 1.503.2.60
  diff -u -r1.503.2.59 -r1.503.2.60
  --- WHATSNEW  12 Mar 2004 09:01:48 -0000      1.503.2.59
  +++ WHATSNEW  15 Mar 2004 11:29:13 -0000      1.503.2.60
  @@ -35,6 +35,9 @@
   
   * NPE when running commons listener. Bugzilla Report 27373.
   
  +* <java> swallowed the stack trace of exceptions thrown by the
  +  executed program if run in the same VM.
  +
   Other changes:
   --------------
   
  
  
  
  No                   revision
  No                   revision
  1.77.2.8  +74 -62    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.77.2.7
  retrieving revision 1.77.2.8
  diff -u -r1.77.2.7 -r1.77.2.8
  --- Java.java 9 Mar 2004 17:01:33 -0000       1.77.2.7
  +++ Java.java 15 Mar 2004 11:29:13 -0000      1.77.2.8
  @@ -19,6 +19,8 @@
   
   import java.io.File;
   import java.io.IOException;
  +import java.io.PrintWriter;
  +import java.io.StringWriter;
   import java.util.Vector;
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.ExitException;
  @@ -169,14 +171,14 @@
               if (failOnError) {
                   throw e;
               } else {
  -                log(e.getMessage(), Project.MSG_ERR);
  +                log(e);
                   return 0;
               }
           } catch (Throwable t) {
               if (failOnError) {
                   throw new BuildException(t);
               } else {
  -                log(t.getMessage(), Project.MSG_ERR);
  +                log(t);
                   return 0;
               }
           }
  @@ -667,41 +669,41 @@
        */
       private int fork(String[] command) throws BuildException {
   
  -            Execute exe
  -                = new Execute(redirector.createHandler(), createWatchdog());
  -            exe.setAntRun(getProject());
  -
  -            if (dir == null) {
  -                dir = getProject().getBaseDir();
  -            } else if (!dir.exists() || !dir.isDirectory()) {
  -                throw new BuildException(dir.getAbsolutePath()
  -                                         + " is not a valid directory",
  -                                         getLocation());
  -            }
  -
  -            exe.setWorkingDirectory(dir);
  -
  -            String[] environment = env.getVariables();
  -            if (environment != null) {
  -                for (int i = 0; i < environment.length; i++) {
  -                    log("Setting environment variable: " + environment[i],
  -                        Project.MSG_VERBOSE);
  -                }
  +        Execute exe
  +            = new Execute(redirector.createHandler(), createWatchdog());
  +        exe.setAntRun(getProject());
  +
  +        if (dir == null) {
  +            dir = getProject().getBaseDir();
  +        } else if (!dir.exists() || !dir.isDirectory()) {
  +            throw new BuildException(dir.getAbsolutePath()
  +                                     + " is not a valid directory",
  +                                     getLocation());
  +        }
  +
  +        exe.setWorkingDirectory(dir);
  +
  +        String[] environment = env.getVariables();
  +        if (environment != null) {
  +            for (int i = 0; i < environment.length; i++) {
  +                log("Setting environment variable: " + environment[i],
  +                    Project.MSG_VERBOSE);
               }
  -            exe.setNewenvironment(newEnvironment);
  -            exe.setEnvironment(environment);
  +        }
  +        exe.setNewenvironment(newEnvironment);
  +        exe.setEnvironment(environment);
   
  -            exe.setCommandline(command);
  -            try {
  -                int rc = exe.execute();
  -                redirector.complete();
  -                if (exe.killedProcess()) {
  -                    throw new BuildException("Timeout: killed the 
sub-process");
  -                }
  -                return rc;
  -            } catch (IOException e) {
  -                throw new BuildException(e, getLocation());
  +        exe.setCommandline(command);
  +        try {
  +            int rc = exe.execute();
  +            redirector.complete();
  +            if (exe.killedProcess()) {
  +                throw new BuildException("Timeout: killed the sub-process");
               }
  +            return rc;
  +        } catch (IOException e) {
  +            throw new BuildException(e, getLocation());
  +        }
       }
   
       /**
  @@ -709,36 +711,36 @@
        */
       private void spawn(String[] command) throws BuildException {
   
  -            Execute exe
  -                = new Execute();
  -            exe.setAntRun(getProject());
  -
  -            if (dir == null) {
  -                dir = getProject().getBaseDir();
  -            } else if (!dir.exists() || !dir.isDirectory()) {
  -                throw new BuildException(dir.getAbsolutePath()
  -                                         + " is not a valid directory",
  -                                         getLocation());
  -            }
  -
  -            exe.setWorkingDirectory(dir);
  -
  -            String[] environment = env.getVariables();
  -            if (environment != null) {
  -                for (int i = 0; i < environment.length; i++) {
  -                    log("Setting environment variable: " + environment[i],
  -                        Project.MSG_VERBOSE);
  -                }
  -            }
  -            exe.setNewenvironment(newEnvironment);
  -            exe.setEnvironment(environment);
  +        Execute exe
  +            = new Execute();
  +        exe.setAntRun(getProject());
  +
  +        if (dir == null) {
  +            dir = getProject().getBaseDir();
  +        } else if (!dir.exists() || !dir.isDirectory()) {
  +            throw new BuildException(dir.getAbsolutePath()
  +                                     + " is not a valid directory",
  +                                     getLocation());
  +        }
   
  -            exe.setCommandline(command);
  -            try {
  -                exe.spawn();
  -            } catch (IOException e) {
  -                throw new BuildException(e, getLocation());
  +        exe.setWorkingDirectory(dir);
  +
  +        String[] environment = env.getVariables();
  +        if (environment != null) {
  +            for (int i = 0; i < environment.length; i++) {
  +                log("Setting environment variable: " + environment[i],
  +                    Project.MSG_VERBOSE);
               }
  +        }
  +        exe.setNewenvironment(newEnvironment);
  +        exe.setEnvironment(environment);
  +
  +        exe.setCommandline(command);
  +        try {
  +            exe.spawn();
  +        } catch (IOException e) {
  +            throw new BuildException(e, getLocation());
  +        }
       }
       /**
        * Executes the given classname with the given arguments as it
  @@ -780,4 +782,14 @@
           return new ExecuteWatchdog(timeout.longValue());
       }
   
  +    /**
  +     * @since 1.6.2
  +     */
  +    private void log(Throwable t) {
  +        StringWriter sw = new StringWriter();
  +        PrintWriter w = new PrintWriter(sw);
  +        t.printStackTrace(w);
  +        w.close();
  +        log(sw.toString(), Project.MSG_ERR);
  +    }
   }
  
  
  

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

Reply via email to