diff --git a/src/main/org/apache/tools/ant/taskdefs/Ant.java b/src/main/org/apache/tools/ant/taskdefs/Ant.java index a2b18d3ac..341c639b8 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Ant.java +++ b/src/main/org/apache/tools/ant/taskdefs/Ant.java @@ -202,6 +202,11 @@ public class Ant extends Task { e = prop1.keys(); while (e.hasMoreElements()) { String arg = (String) e.nextElement(); + if ("basedir".equals(arg) || "ant.file".equals(arg)) { + // basedir and ant.file get special treatment in execute() + continue; + } + String value = (String) prop1.get(arg); if (inheritAll == true){ newProject.setProperty(arg, value); @@ -238,8 +243,11 @@ public class Ant extends Task { reinit(); } - if ( (dir == null) && (inheritAll == true) ) + if ( (dir == null) && (inheritAll == true) ) { dir = project.getBaseDir(); + } + + initializeProject(); if (dir != null) { newProject.setBaseDir(dir); @@ -248,8 +256,6 @@ public class Ant extends Task { dir = project.getBaseDir(); } - initializeProject(); - // Override with local-defined properties Enumeration e = properties.elements(); while (e.hasMoreElements()) {