diff --git a/src/main/org/apache/tools/ant/taskdefs/ExecTask.java b/src/main/org/apache/tools/ant/taskdefs/ExecTask.java index 3e54f2cd8..8ca081959 100644 --- a/src/main/org/apache/tools/ant/taskdefs/ExecTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/ExecTask.java @@ -607,7 +607,6 @@ public class ExecTask extends Task { exe.setAntRun(getProject()); exe.setWorkingDirectory(dir); exe.setVMLauncher(vmLauncher); - exe.setSpawn(spawn); String[] environment = env.getVariables(); if (environment != null) { for (int i = 0; i < environment.length; i++) { diff --git a/src/main/org/apache/tools/ant/taskdefs/Execute.java b/src/main/org/apache/tools/ant/taskdefs/Execute.java index da5dce07a..0f09f3bb1 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Execute.java +++ b/src/main/org/apache/tools/ant/taskdefs/Execute.java @@ -26,8 +26,6 @@ import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringReader; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.HashMap; import java.util.Iterator; import java.util.Vector; @@ -66,9 +64,6 @@ public class Execute { private File workingDirectory = null; private Project project = null; private boolean newEnvironment = false; - //TODO: nothing appears to read this but is set using a public setter. - private boolean spawn = false; - /** Controls whether the VM is used to launch commands, where possible. */ private boolean useVMLauncher = true; @@ -140,11 +135,14 @@ public class Execute { * * @param spawn if true you do not want Ant * to wait for the end of the process. + * Has no influence in here, the calling task contains + * and acts accordingly * * @since Ant 1.6 + * @deprecated */ public void setSpawn(boolean spawn) { - this.spawn = spawn; + // Method did not do anything to begin with } /** @@ -528,6 +526,7 @@ public class Execute { } OutputStream dummyOut = new OutputStream() { public void write(int b) throws IOException { + // Method intended to swallow whatever comes at it } }; @@ -802,13 +801,9 @@ public class Execute { * Runtime.exec() command. */ private static class Java13CommandLauncher extends CommandLauncher { - private Method myExecWithCWD; public Java13CommandLauncher() throws NoSuchMethodException { - // Locate method Runtime.exec(String[] cmdarray, - // String[] envp, File dir) - myExecWithCWD = Runtime.class.getMethod("exec", - new Class[] {String[].class, String[].class, File.class}); + // Used to verify if Java13 is available, is prerequisite in ant 1.8 } /** @@ -829,18 +824,7 @@ public class Execute { project.log("Execute:Java13CommandLauncher: " + Commandline.describeCommand(cmd), Project.MSG_DEBUG); } - return (Process) myExecWithCWD.invoke(Runtime.getRuntime(), - /* the arguments: */ new Object[] {cmd, env, workingDir}); - } catch (InvocationTargetException exc) { - Throwable realexc = exc.getTargetException(); - if (realexc instanceof ThreadDeath) { - throw (ThreadDeath) realexc; - } else if (realexc instanceof IOException) { - throw (IOException) realexc; - } else { - throw new BuildException("Unable to execute command", - realexc); - } + return Runtime.getRuntime().exec(cmd, env, workingDir); } catch (Exception exc) { // IllegalAccess, IllegalArgument, ClassCast throw new BuildException("Unable to execute command", exc);