diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java index 5321199de..31909892d 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -484,9 +484,14 @@ public class ProjectHelper { // assert value!=nil int pos; while( (pos=value.indexOf( "$", prev )) >= 0 ) { - if(pos>0) + if(pos>0) { sb.append( value.substring( prev, pos ) ); - if( value.charAt( pos + 1 ) != '{' ) { + } + if( pos == (value.length() - 1)) { + sb.append('$'); + prev = pos + 1; + } + else if (value.charAt( pos + 1 ) != '{' ) { sb.append( value.charAt( pos + 1 ) ); prev=pos+2; // XXX } else { diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java index 9cf53582e..6bcfe03ed 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Property.java +++ b/src/main/org/apache/tools/ant/taskdefs/Property.java @@ -101,17 +101,16 @@ public class Property extends Task { public void init() throws BuildException { try { if ((name != null) && (value != null)) { - String v = ProjectHelper.replaceProperties(value, project.getProperties()); if( userProperty ) if (project.getUserProperty(name) == null) { - project.setUserProperty(name, v); + project.setUserProperty(name, value); } else { project.log("Override ignored for " + name, project.MSG_VERBOSE); } else if (project.getProperty(name) == null) { - project.setProperty(name, v); + project.setProperty(name, value); } else { project.log("Override ignored for " + name, project.MSG_VERBOSE);