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)); | |||||
} | |||||
} | } |