From 1c48e016c22d2e836f1926b4edbba6774e6ce3f9 Mon Sep 17 00:00:00 2001 From: Peter Reilly Date: Thu, 30 Sep 2004 17:05:38 +0000 Subject: [PATCH] Fix for execution of top level tasks getting delayed by targets. PR: 31487 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276905 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 3 +++ src/etc/testcases/taskdefs/import/importtargetfirst.xml | 5 +++++ src/etc/testcases/taskdefs/import/targetfirst.xml | 4 ++++ src/main/org/apache/tools/ant/helper/ProjectHelper2.java | 3 +++ src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java | 4 ++++ 5 files changed, 19 insertions(+) create mode 100644 src/etc/testcases/taskdefs/import/importtargetfirst.xml create mode 100644 src/etc/testcases/taskdefs/import/targetfirst.xml diff --git a/WHATSNEW b/WHATSNEW index 591ae4196..457a3ee11 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -26,6 +26,9 @@ Fixed bugs: * Incorrect task name with invalid "javac" task after a "presetdef. Bugzilla reports 31389 and 29499. +* Execution of top level tasks in imported files get delayed by targets. + Bugzilla report 31487. + Other changes: -------------- diff --git a/src/etc/testcases/taskdefs/import/importtargetfirst.xml b/src/etc/testcases/taskdefs/import/importtargetfirst.xml new file mode 100644 index 000000000..dd8f92b8c --- /dev/null +++ b/src/etc/testcases/taskdefs/import/importtargetfirst.xml @@ -0,0 +1,5 @@ + + Importing targetfirst + + After importing + diff --git a/src/etc/testcases/taskdefs/import/targetfirst.xml b/src/etc/testcases/taskdefs/import/targetfirst.xml new file mode 100644 index 000000000..a8e234abe --- /dev/null +++ b/src/etc/testcases/taskdefs/import/targetfirst.xml @@ -0,0 +1,4 @@ + + + After target first + diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java index f5c5dbcc5..25ced2d8c 100644 --- a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java +++ b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java @@ -116,15 +116,18 @@ public class ProjectHelper2 extends ProjectHelper { // we are in an imported file. context.setIgnoreProjectTag(true); Target currentTarget = context.getCurrentTarget(); + Target currentImplicit = context.getImplicitTarget(); try { Target newCurrent = new Target(); newCurrent.setProject(project); newCurrent.setName(""); context.setCurrentTarget(newCurrent); + context.setImplicitTarget(newCurrent); parse(project, source, new RootHandler(context, mainHandler)); newCurrent.execute(); } finally { context.setCurrentTarget(currentTarget); + context.setImplicitTarget(currentImplicit); } } else { // top level file diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java index 946aa539c..524494451 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java @@ -142,4 +142,8 @@ public class ImportTest extends BuildFileTest { } } + public void testTargetFirst() { + configureProject("src/etc/testcases/taskdefs/import/importtargetfirst.xml"); + assertLogContaining("Importing targetfirstAfter target firstAfter importing"); + } }