diff --git a/src/etc/testcases/taskdefs/java.xml b/src/etc/testcases/taskdefs/java.xml index f8dbc6df8..5d9bba151 100644 --- a/src/etc/testcases/taskdefs/java.xml +++ b/src/etc/testcases/taskdefs/java.xml @@ -67,6 +67,13 @@ + + + + + 1) { - log("JVM args ignored when same JVM is used.", Project.MSG_WARN); + log("JVM args ignored when same JVM is used.", + Project.MSG_WARN); } if (dir != null) { - log("Working directory ignored when same JVM is used.", Project.MSG_WARN); + log("Working directory ignored when same JVM is used.", + Project.MSG_WARN); } if (newEnvironment || null != env.getVariables()) { - log("Changes to environment variables are ignored when same JVM is used.", - Project.MSG_WARN); + log("Changes to environment variables are ignored when same " + + "JVM is used.", Project.MSG_WARN); } log("Running in same VM " + cmdl.getJavaCommand().toString(), Project.MSG_VERBOSE); - try { - run(cmdl); + } + + try { + if (fork) { + return run(cmdl.getCommandline()); + } else { + try { + run(cmdl); + return 0; + } catch (ExitException ex) { + return ex.getStatus(); + } + } + } catch (BuildException e) { + if (failOnError) { + throw e; + } else { + log(e.getMessage(), Project.MSG_ERR); return 0; } - catch (ExitException ex) { - return ex.getStatus(); + } catch (Throwable t) { + if (failOnError) { + throw new BuildException(t); + } else { + log(t.getMessage(), Project.MSG_ERR); + return 0; } } } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java index 789c76359..f52b01e1e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/XMLValidateTask.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000-2001 The Apache Software Foundation. All rights + * Copyright (c) 2000-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java b/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java index 4e924aad7..5bb13ab54 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/JavaTest.java @@ -144,13 +144,19 @@ public class JavaTest extends BuildFileTest { } public void testExcepting() { - executeTarget("testExcepting"); + expectLogContaining("testExcepting", + "Exception raised inside called program"); + } + + public void testExceptingFork() { + expectLogContaining("testExceptingFork", + "Java Result:"); } public void testExceptingFoe() { - //if(runFatalTests) { - executeTarget("testExceptingFoe"); - //} + expectBuildExceptionContaining("testExceptingFoe", + "passes exception through", + "Exception raised inside called program"); } public void testExceptingFoeFork() {