Browse Source

record task doesn't work properly with subbuilds. PR 41368. Submitted by Greg Schueler

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@793792 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
393113dc69
9 changed files with 61 additions and 5 deletions
  1. +1
    -0
      CONTRIBUTORS
  2. +4
    -1
      WHATSNEW
  3. +4
    -0
      contributors.xml
  4. +7
    -0
      src/etc/testcases/taskdefs/recorder.xml
  5. +4
    -0
      src/etc/testcases/taskdefs/recorder/rectest5.result
  6. +1
    -0
      src/etc/testcases/taskdefs/recorder/rectest6.result
  7. +12
    -0
      src/etc/testcases/taskdefs/recorder2.xml
  8. +13
    -4
      src/main/org/apache/tools/ant/taskdefs/Recorder.java
  9. +15
    -0
      src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java

+ 1
- 0
CONTRIBUTORS View File

@@ -107,6 +107,7 @@ Gerrit Riessen
Glenn McAllister
Glenn Twiggs
Greg Nelson
Greg Schueler
Günther Kögel
Harish Prabandham
Haroon Rafique


+ 4
- 1
WHATSNEW View File

@@ -399,7 +399,10 @@ Fixed bugs:

* 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:
--------------


+ 4
- 0
contributors.xml View File

@@ -453,6 +453,10 @@
<first>Greg</first>
<last>Nelson</last>
</name>
<name>
<first>Greg</first>
<last>Schueler</last>
</name>
<name>
<first>Günther</first>
<last>Kögel</last>


+ 7
- 0
src/etc/testcases/taskdefs/recorder.xml View File

@@ -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}"/>


+ 4
- 0
src/etc/testcases/taskdefs/recorder/rectest5.result View File

@@ -0,0 +1,4 @@
[echo] some message5

test6:
[echo] some message6

+ 1
- 0
src/etc/testcases/taskdefs/recorder/rectest6.result View File

@@ -0,0 +1 @@
[echo] some message6

+ 12
- 0
src/etc/testcases/taskdefs/recorder2.xml View File

@@ -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>

+ 13
- 4
src/main/org/apache/tools/ant/taskdefs/Recorder.java View File

@@ -64,7 +64,7 @@ public class Recorder extends Task implements SubBuildListener {
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 @@ public class Recorder extends Task implements SubBuildListener {
*/
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 @@ public class Recorder extends Task implements SubBuildListener {
entry.openFile(append.booleanValue());
}
entry.setProject(proj);
recorderEntries.put(name, entry);
entries.put(name, entry);
} else {
entry = (RecorderEntry) o;
}
@@ -306,7 +311,11 @@ public class Recorder extends Task implements SubBuildListener {
* @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);
}
}


+ 15
- 0
src/tests/junit/org/apache/tools/ant/taskdefs/RecorderTest.java View File

@@ -82,4 +82,19 @@ public class RecorderTest extends BuildFileTest {
+ "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));
}

}

Loading…
Cancel
Save