diff --git a/src/etc/testcases/taskdefs/property.xml b/src/etc/testcases/taskdefs/property.xml
index ae967470b..cc3fb771a 100644
--- a/src/etc/testcases/taskdefs/property.xml
+++ b/src/etc/testcases/taskdefs/property.xml
@@ -16,4 +16,9 @@
+
+
+
+
+
diff --git a/src/etc/testcases/taskdefs/property3.properties b/src/etc/testcases/taskdefs/property3.properties
new file mode 100644
index 000000000..efbf7ce4b
--- /dev/null
+++ b/src/etc/testcases/taskdefs/property3.properties
@@ -0,0 +1,4 @@
+http.port = 80
+http.url = http://localhost:${http.port}
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java
index 78a0ad1aa..aa775c03e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Property.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Property.java
@@ -178,7 +178,7 @@ public class Property extends Task {
}
}
- protected void loadFile (File file) throws BuildException {
+ protected void loadFile(File file) throws BuildException {
Properties props = new Properties();
log("Loading " + file.getAbsolutePath(), Project.MSG_VERBOSE);
try {
@@ -201,7 +201,7 @@ public class Property extends Task {
}
}
- protected void loadResource( String name ) {
+ protected void loadResource(String name) {
Properties props = new Properties();
log("Resource Loading " + name, Project.MSG_VERBOSE);
try {
@@ -300,12 +300,15 @@ public class Property extends Task {
if (propertyName.equals(name)) {
throw new BuildException("Property " + name + " was circularly defined.");
}
- if (props.containsKey(propertyName)) {
- fragment = props.getProperty(propertyName);
- resolved = false;
- }
- else {
- fragment = "${" + propertyName + "}";
+ fragment = getProject().getProperty(propertyName);
+ if (fragment == null) {
+ if (props.containsKey(propertyName)) {
+ fragment = props.getProperty(propertyName);
+ resolved = false;
+ }
+ else {
+ fragment = "${" + propertyName + "}";
+ }
}
}
sb.append(fragment);
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java b/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
index 17924d10f..1b2860334 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/PropertyTest.java
@@ -90,4 +90,8 @@ public class PropertyTest extends TaskdefsTest {
fail("Did not throw exception on circular exception");
}
+ public void test4() {
+ expectLog("test4", "http.url is http://localhost:999");
+ }
+
}