Author: bodewig
Date: Tue Jul 14 04:51:55 2009
New Revision: 793792
URL: http://svn.apache.org/viewvc?rev=793792&view=rev
Log:
record task doesn't work properly with subbuilds. PR 41368. Submitted by Greg
Schueler
Added:
ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest5.result
ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest6.result
ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml (with props)
Modified:
ant/core/trunk/CONTRIBUTORS
ant/core/trunk/WHATSNEW
ant/core/trunk/contributors.xml
ant/core/trunk/src/etc/testcases/taskdefs/recorder.xml
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Recorder.java
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java
Modified: ant/core/trunk/CONTRIBUTORS
URL:
http://svn.apache.org/viewvc/ant/core/trunk/CONTRIBUTORS?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
Binary files - no diff available.
Modified: ant/core/trunk/WHATSNEW
URL:
http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Tue Jul 14 04:51:55 2009
@@ -399,7 +399,10 @@
* filesetmanifest="mergewithoutmain" in <jar> didn't treat inline
manifests as expected.
- Bugzilla Report 29731.
+ Bugzilla Report 29731.
+
+ * <record> didn't work properly with nested builds.
+ Bugzilla Report 41368.
Other changes:
--------------
Modified: ant/core/trunk/contributors.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/contributors.xml?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
--- ant/core/trunk/contributors.xml (original)
+++ ant/core/trunk/contributors.xml Tue Jul 14 04:51:55 2009
@@ -454,6 +454,10 @@
<last>Nelson</last>
</name>
<name>
+ <first>Greg</first>
+ <last>Schueler</last>
+ </name>
+ <name>
<first>Günther</first>
<last>Kögel</last>
</name>
Modified: ant/core/trunk/src/etc/testcases/taskdefs/recorder.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/recorder.xml?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/recorder.xml (original)
+++ ant/core/trunk/src/etc/testcases/taskdefs/recorder.xml Tue Jul 14 04:51:55
2009
@@ -61,6 +61,13 @@
<record name="${recdir}/rectest4.log" action="stop"/>
</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">
<delete dir="${recdir}"/>
Added: ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest5.result
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest5.result?rev=793792&view=auto
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest5.result (added)
+++ ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest5.result Tue Jul
14 04:51:55 2009
@@ -0,0 +1,4 @@
+ [echo] some message5
+
+test6:
+ [echo] some message6
Added: ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest6.result
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest6.result?rev=793792&view=auto
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest6.result (added)
+++ ant/core/trunk/src/etc/testcases/taskdefs/recorder/rectest6.result Tue Jul
14 04:51:55 2009
@@ -0,0 +1 @@
+ [echo] some message6
Added: ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml?rev=793792&view=auto
==============================================================================
--- ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml (added)
+++ ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml Tue Jul 14 04:51:55
2009
@@ -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>
Propchange: ant/core/trunk/src/etc/testcases/taskdefs/recorder2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Recorder.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Recorder.java?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Recorder.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Recorder.java Tue Jul
14 04:51:55 2009
@@ -64,7 +64,7 @@
private int loglevel = -1;
/** Strip task banners if true. */
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();
//////////////////////////////////////////////////////////////////////
@@ -203,7 +203,12 @@
*/
protected RecorderEntry getRecorder(String name, Project proj)
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;
if (o == null) {
@@ -216,7 +221,7 @@
entry.openFile(append.booleanValue());
}
entry.setProject(proj);
- recorderEntries.put(name, entry);
+ entries.put(name, entry);
} else {
entry = (RecorderEntry) o;
}
@@ -306,7 +311,11 @@
* @since Ant 1.7
*/
private void cleanup() {
- recorderEntries.clear();
+ Hashtable entries = (Hashtable) recorderEntries.get(getProject());
+ if (null != entries) {
+ entries.clear();
+ recorderEntries.remove(entries);
+ }
getProject().removeBuildListener(this);
}
}
Modified:
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java?rev=793792&r1=793791&r2=793792&view=diff
==============================================================================
---
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java
(original)
+++
ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java
Tue Jul 14 04:51:55 2009
@@ -82,4 +82,19 @@
+ "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));
+
+ }
+
}