git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@793792 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -107,6 +107,7 @@ Gerrit Riessen | |||||
| Glenn McAllister | Glenn McAllister | ||||
| Glenn Twiggs | Glenn Twiggs | ||||
| Greg Nelson | Greg Nelson | ||||
| Greg Schueler | |||||
| Günther Kögel | Günther Kögel | ||||
| Harish Prabandham | Harish Prabandham | ||||
| Haroon Rafique | Haroon Rafique | ||||
| @@ -399,7 +399,10 @@ Fixed bugs: | |||||
| * filesetmanifest="mergewithoutmain" in <jar> didn't treat inline | * filesetmanifest="mergewithoutmain" in <jar> didn't treat inline | ||||
| manifests as expected. | manifests as expected. | ||||
| Bugzilla Report 29731. | |||||
| Bugzilla Report 29731. | |||||
| * <record> didn't work properly with nested builds. | |||||
| Bugzilla Report 41368. | |||||
| Other changes: | Other changes: | ||||
| -------------- | -------------- | ||||
| @@ -453,6 +453,10 @@ | |||||
| <first>Greg</first> | <first>Greg</first> | ||||
| <last>Nelson</last> | <last>Nelson</last> | ||||
| </name> | </name> | ||||
| <name> | |||||
| <first>Greg</first> | |||||
| <last>Schueler</last> | |||||
| </name> | |||||
| <name> | <name> | ||||
| <first>Günther</first> | <first>Günther</first> | ||||
| <last>Kögel</last> | <last>Kögel</last> | ||||
| @@ -61,6 +61,13 @@ | |||||
| <record name="${recdir}/rectest4.log" action="stop"/> | <record name="${recdir}/rectest4.log" action="stop"/> | ||||
| </target> | </target> | ||||
| <target name="subbuild"> | |||||
| <record name="${recdir}/rectest5.log" action="start"/> | |||||
| <echo message="some message5"/> | |||||
| <ant antfile="recorder2.xml"/> | |||||
| <record name="${recdir}/rectest5.log" action="stop"/> | |||||
| </target> | |||||
| <target name="cleanup"> | <target name="cleanup"> | ||||
| <delete dir="${recdir}"/> | <delete dir="${recdir}"/> | ||||
| @@ -0,0 +1,4 @@ | |||||
| [echo] some message5 | |||||
| test6: | |||||
| [echo] some message6 | |||||
| @@ -0,0 +1 @@ | |||||
| [echo] some message6 | |||||
| @@ -0,0 +1,12 @@ | |||||
| <?xml version="1.0"?> | |||||
| <project name="recorder-test" default="test6" basedir="."> | |||||
| <property name="recin" location="recorder"/> | |||||
| <property name="recdir" location="recorder-out"/> | |||||
| <target name="test6"> | |||||
| <record name="${recdir}/rectest6.log" action="start" /> | |||||
| <echo message="some message6"/> | |||||
| <record name="${recdir}/rectest6.log" action="stop" /> | |||||
| </target> | |||||
| </project> | |||||
| @@ -64,7 +64,7 @@ public class Recorder extends Task implements SubBuildListener { | |||||
| private int loglevel = -1; | private int loglevel = -1; | ||||
| /** Strip task banners if true. */ | /** Strip task banners if true. */ | ||||
| private boolean emacsMode = false; | private boolean emacsMode = false; | ||||
| /** The list of recorder entries. */ | |||||
| /** The recorder entries keyed by Project. Each value is another Hashtable of filename to RecorderEntry. */ | |||||
| private static Hashtable recorderEntries = new Hashtable(); | private static Hashtable recorderEntries = new Hashtable(); | ||||
| ////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////// | ||||
| @@ -203,7 +203,12 @@ public class Recorder extends Task implements SubBuildListener { | |||||
| */ | */ | ||||
| protected RecorderEntry getRecorder(String name, Project proj) | protected RecorderEntry getRecorder(String name, Project proj) | ||||
| throws BuildException { | throws BuildException { | ||||
| Object o = recorderEntries.get(name); | |||||
| Hashtable entries = (Hashtable) recorderEntries.get(proj); | |||||
| if (null == entries) { | |||||
| entries = new Hashtable(); | |||||
| recorderEntries.put(proj, entries); | |||||
| } | |||||
| Object o = entries.get(name); | |||||
| RecorderEntry entry; | RecorderEntry entry; | ||||
| if (o == null) { | if (o == null) { | ||||
| @@ -216,7 +221,7 @@ public class Recorder extends Task implements SubBuildListener { | |||||
| entry.openFile(append.booleanValue()); | entry.openFile(append.booleanValue()); | ||||
| } | } | ||||
| entry.setProject(proj); | entry.setProject(proj); | ||||
| recorderEntries.put(name, entry); | |||||
| entries.put(name, entry); | |||||
| } else { | } else { | ||||
| entry = (RecorderEntry) o; | entry = (RecorderEntry) o; | ||||
| } | } | ||||
| @@ -306,7 +311,11 @@ public class Recorder extends Task implements SubBuildListener { | |||||
| * @since Ant 1.7 | * @since Ant 1.7 | ||||
| */ | */ | ||||
| private void cleanup() { | private void cleanup() { | ||||
| recorderEntries.clear(); | |||||
| Hashtable entries = (Hashtable) recorderEntries.get(getProject()); | |||||
| if (null != entries) { | |||||
| entries.clear(); | |||||
| recorderEntries.remove(entries); | |||||
| } | |||||
| getProject().removeBuildListener(this); | getProject().removeBuildListener(this); | ||||
| } | } | ||||
| } | } | ||||
| @@ -82,4 +82,19 @@ public class RecorderTest extends BuildFileTest { | |||||
| + "rectest4.log"), true)); | + "rectest4.log"), true)); | ||||
| } | } | ||||
| public void testSubBuild() throws IOException { | |||||
| executeTarget("subbuild"); | |||||
| assertTrue(FILE_UTILS | |||||
| .contentEquals(project.resolveFile(REC_IN | |||||
| + "rectest5.result"), | |||||
| project.resolveFile(REC_DIR | |||||
| + "rectest5.log"), true)); | |||||
| assertTrue(FILE_UTILS | |||||
| .contentEquals(project.resolveFile(REC_IN | |||||
| + "rectest6.result"), | |||||
| project.resolveFile(REC_DIR | |||||
| + "rectest6.log"), true)); | |||||
| } | |||||
| } | } | ||||