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() {