From c375195b522bdf90a8c560e56749320b7a861162 Mon Sep 17 00:00:00 2001 From: Stephane Bailliez Date: Sat, 15 Dec 2001 00:27:16 +0000 Subject: [PATCH] Now catching the ExitException that can arise from running ANTLR in non-forked mode. It implies that the System Manager is overriden and trap System.exit() calls to throw an ExitException instead. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270149 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/taskdefs/optional/ANTLR.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java index e7ae320a2..592d70b88 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ANTLR.java @@ -63,6 +63,7 @@ import java.net.URL; import org.apache.tools.ant.Task; import org.apache.tools.ant.Project; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.ExitException; import org.apache.tools.ant.taskdefs.Execute; import org.apache.tools.ant.taskdefs.LogStreamHandler; import org.apache.tools.ant.taskdefs.ExecuteJava; @@ -196,7 +197,13 @@ public class ANTLR extends Task { ExecuteJava exe = new ExecuteJava(); exe.setJavaCommand(commandline.getJavaCommand()); exe.setClasspath(commandline.getClasspath()); - exe.execute(project); + try { + exe.execute(project); + } catch (ExitException e){ + if ( e.getStatus() != 0 ){ + throw new BuildException("ANTLR returned: " + e.getStatus(), location); + } + } } } }