Browse Source

Make build files that rely on Ant 1.5's behavior work again.

These build files rely on the fact that references to top level data
types get added before the data type's child elements have been
added.  In a case like

<path id="foo">
  <fileset dir="not-there" />
</path>

The toString method will return "" before the fileset has been added
but throw a BuildException afterwards.  A logging statement in
Project#addReference will call toString and thus make the build fail,
while it would work in 1.5 as long as you never use the path.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273127 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
beb22f1490
1 changed files with 11 additions and 1 deletions
  1. +11
    -1
      src/main/org/apache/tools/ant/Project.java

+ 11
- 1
src/main/org/apache/tools/ant/Project.java View File

@@ -1777,7 +1777,17 @@ public class Project {
log("Overriding previous definition of reference to " + name,
MSG_WARN);
}
log("Adding reference: " + name + " -> " + value, MSG_DEBUG);

String valueAsString = "";
try {
valueAsString = value.toString();
} catch (Throwable t) {
log("Caught exception (" + t.getClass().getName() +")"
+ " while expanding " + name + ": " + t.getMessage(),
MSG_WARN);
}
log("Adding reference: " + name + " -> " + valueAsString,
MSG_DEBUG);
references.put(name, value);
}
}


Loading…
Cancel
Save