From 35c0faa1a2b3165909e96d09cd13f429d172f661 Mon Sep 17 00:00:00 2001 From: Sam Ruby Date: Sun, 6 Feb 2000 21:16:57 +0000 Subject: [PATCH] 1) Correct potential infinite loops when parsing invalid Java source 2) Correct Stefano's mailing address 3) Correct handling of escaped quotes in strings 4) Return exit code from the exec'd process as it may be useful Submitted by: Michael Smith git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267590 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/taskdefs/Exec.java | 10 +++++++--- src/main/org/apache/tools/ant/taskdefs/Javadoc.java | 13 +++++++------ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/Exec.java b/src/main/org/apache/tools/ant/taskdefs/Exec.java index 4793c6449..b34447ad4 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Exec.java +++ b/src/main/org/apache/tools/ant/taskdefs/Exec.java @@ -76,7 +76,9 @@ public class Exec extends Task { run(command); } - protected void run(String command) throws BuildException { + protected int run(String command) throws BuildException { + + int err = -1; // assume the worst // test if os match String myos = System.getProperty("os.name"); @@ -84,7 +86,7 @@ public class Exec extends Task { if ((os != null) && (os.indexOf(myos) < 0)){ // this command will be executed only on the specified OS project.log("Not found in " + os, Project.MSG_VERBOSE); - return; + return 0; } if (myos.toLowerCase().indexOf("windows") >= 0) { @@ -131,13 +133,15 @@ public class Exec extends Task { if (fos != null) fos.close(); // check its exit value - int err = proc.exitValue(); + err = proc.exitValue(); if (err != 0) { project.log("Result: " + err, "exec", Project.MSG_ERR); } } catch (IOException ioe) { throw new BuildException("Error exec: " + command ); } catch (InterruptedException ex) {} + + return err; } public void setDir(String d) { diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java index 3241079e8..60b5955e7 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java +++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java @@ -74,7 +74,7 @@ import java.util.*; * System.exit() that would break Ant functionality. * * @author Jon S. Stevens jon@clearink.com - * @author Stefano Mazzocchi stefano@apache.org + * @author Stefano Mazzocchi stefano@apache.org */ public class Javadoc extends Exec { @@ -571,9 +571,9 @@ public class Javadoc extends Exec { if (c == '/') { c = in.read(); if (c == '/') { - while (c != '\n') c = in.read(); + while (c != '\n' && c != -1) c = in.read(); } else if (c == '*') { - while (true) { + while (c != -1) { c = in.read(); if (c == '*') { c = in.read(); @@ -586,10 +586,11 @@ public class Javadoc extends Exec { } } if (c == '"') { - while (true) { + while (c != -1) { c = in.read(); - if (c == '\\') c = in.read(); - if (c == '"') { + if (c == '\\') { + c = in.read(); + } else if (c == '"') { c = read(); break; }