diff --git a/lib/optional/junit.jar b/lib/optional/junit.jar
index 019387737..914a5cfa9 100644
Binary files a/lib/optional/junit.jar and b/lib/optional/junit.jar differ
diff --git a/src/etc/testcases/taskdefs/property.xml b/src/etc/testcases/taskdefs/property.xml
index fdc601e1d..ae967470b 100644
--- a/src/etc/testcases/taskdefs/property.xml
+++ b/src/etc/testcases/taskdefs/property.xml
@@ -5,4 +5,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/property1.properties b/src/etc/testcases/taskdefs/property1.properties
new file mode 100644
index 000000000..ea3ecc4cb
--- /dev/null
+++ b/src/etc/testcases/taskdefs/property1.properties
@@ -0,0 +1,3 @@
+testprop2=xx
+testprop3=${testprop2}yy
+testprop4=${testprop1}zz
diff --git a/src/etc/testcases/taskdefs/property2.properties b/src/etc/testcases/taskdefs/property2.properties
new file mode 100644
index 000000000..257899a23
--- /dev/null
+++ b/src/etc/testcases/taskdefs/property2.properties
@@ -0,0 +1,3 @@
+testprop1=aa${testprop2}bb
+testprop2=cc${testprop1}dd
+
diff --git a/src/main/org/apache/tools/ant/Target.java b/src/main/org/apache/tools/ant/Target.java
index 36a28ffd4..b24c22f76 100644
--- a/src/main/org/apache/tools/ant/Target.java
+++ b/src/main/org/apache/tools/ant/Target.java
@@ -184,6 +184,7 @@ public class Target implements TaskContainer {
}
catch(RuntimeException exc) {
project.fireTargetFinished(this, exc);
+ System.out.println("Caught exception = " + exc.getMessage());
throw exc;
}
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java b/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
index 3b5378536..17924d10f 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
@@ -54,6 +54,8 @@
package org.apache.tools.ant.taskdefs;
+import org.apache.tools.ant.*;
+
/**
* @author Conor MacNeill
*/
@@ -71,4 +73,21 @@ public class PropertyTest extends TaskdefsTest {
// should get no output at all
expectOutputAndError("test1", "", "");
}
+
+ public void test2() {
+ expectLog("test2", "testprop1=aa, testprop3=xxyy, testprop4=aazz");
+ }
+
+ public void test3() {
+ try {
+ executeTarget("test3");
+ }
+ catch (BuildException e) {
+ assertEquals("Circular definition not detected - ", true,
+ e.getMessage().indexOf("was circularly defined") != -1);
+ return;
+ }
+ fail("Did not throw exception on circular exception");
+ }
+
}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java b/src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java
index e7a135859..7e67ce9ad 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java
@@ -170,7 +170,7 @@ public abstract class TaskdefsTest extends TestCase {
}
protected void expectSpecificBuildException(String taskname, String cause, String msg) {
- try {
+ try {
executeTarget(taskname);
} catch (org.apache.tools.ant.BuildException ex) {
if ((null != msg) && (ex.getMessage() != msg)) {