diff --git a/src/main/org/apache/tools/ant/Target.java b/src/main/org/apache/tools/ant/Target.java
index 27abf5759..e9e168ad6 100644
--- a/src/main/org/apache/tools/ant/Target.java
+++ b/src/main/org/apache/tools/ant/Target.java
@@ -125,14 +125,15 @@ public class Target implements TaskContainer {
* depends on. Must not be null
.
*/
public void setDepends(String depS) {
- for (Iterator iter = parseDepends(depS, getName()).iterator();
+ for (Iterator iter = parseDepends(depS, getName(), "depends").iterator();
iter.hasNext(); ) {
addDependency((String) iter.next());
}
}
public static List/**/ parseDepends(String depends,
- String targetName) {
+ String targetName,
+ String attributeName) {
ArrayList list = new ArrayList();
if (depends.length() > 0) {
StringTokenizer tok =
@@ -142,11 +143,11 @@ public class Target implements TaskContainer {
// Make sure the dependency is not empty string
if ("".equals(token) || ",".equals(token)) {
- throw new BuildException("Syntax Error: depends "
- + "attribute of target \""
+ throw new BuildException("Syntax Error: "
+ + attributeName
+ + " attribute of target \""
+ targetName
- + "\" has an empty string as "
- + "dependency.");
+ + "\" contains an empty string.");
}
list.add(token);
@@ -156,8 +157,9 @@ public class Target implements TaskContainer {
if (tok.hasMoreTokens()) {
token = tok.nextToken();
if (!tok.hasMoreTokens() || !",".equals(token)) {
- throw new BuildException("Syntax Error: Depend "
- + "attribute for target \""
+ throw new BuildException("Syntax Error: "
+ + attributeName
+ + " attribute for target \""
+ targetName
+ "\" ends with a \",\" "
+ "character");
diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
index ce45715fb..95126de5c 100644
--- a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
+++ b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
@@ -876,9 +876,6 @@ public class ProjectHelper2 extends ProjectHelper {
+ " specify a name attribute");
}
name = prefix + sep + name;
- if (targetGroup != null) {
- targetGroup = prefix + sep + targetGroup;
- }
}
// Check if this target is in the current build file
@@ -904,7 +901,8 @@ public class ProjectHelper2 extends ProjectHelper {
target.setDepends(depends);
} else {
for (Iterator iter =
- Target.parseDepends(depends, name).iterator();
+ Target.parseDepends(depends, name, "depends")
+ .iterator();
iter.hasNext(); ) {
target.addDependency(prefix + sep + iter.next());
}
@@ -921,20 +919,29 @@ public class ProjectHelper2 extends ProjectHelper {
project.addOrReplaceTarget(newName, newTarget);
}
if (targetGroup != null) {
- if (!projectTargets.containsKey(targetGroup)) {
- throw new BuildException("can't add target "
- + name + " to target-group "
- + targetGroup
- + " because the target-group"
- + " is unknown.");
- }
- Target t = (Target) projectTargets.get(targetGroup);
- if (!(t instanceof TargetGroup)) {
- throw new BuildException("referenced target "
- + targetGroup
- + " is not a target-group");
+ for (Iterator iter =
+ Target.parseDepends(targetGroup, name, "target-group")
+ .iterator();
+ iter.hasNext(); ) {
+ String tgName = (String) iter.next();
+ if (isInIncludeMode()) {
+ tgName = prefix + sep + tgName;
+ }
+ if (!projectTargets.containsKey(tgName)) {
+ throw new BuildException("can't add target "
+ + name + " to target-group "
+ + tgName
+ + " because the target-group"
+ + " is unknown.");
+ }
+ Target t = (Target) projectTargets.get(tgName);
+ if (!(t instanceof TargetGroup)) {
+ throw new BuildException("referenced target "
+ + tgName
+ + " is not a target-group");
+ }
+ t.addDependency(name);
}
- t.addDependency(name);
}
}