Browse Source

Preliminary fix for 8689

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276617 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 21 years ago
parent
commit
8d4197a222
2 changed files with 35 additions and 6 deletions
  1. +26
    -4
      src/main/org/apache/tools/ant/taskdefs/Ant.java
  2. +9
    -2
      src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java

+ 26
- 4
src/main/org/apache/tools/ant/taskdefs/Ant.java View File

@@ -24,9 +24,11 @@ import java.io.PrintStream;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
import java.util.Set;
import java.util.HashSet;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.DefaultLogger;
@@ -147,10 +149,9 @@ public class Ant extends Task {
private void initializeProject() {
newProject.setInputHandler(getProject().getInputHandler());

Vector listeners = getProject().getBuildListeners();
final int count = listeners.size();
for (int i = 0; i < count; i++) {
newProject.addBuildListener((BuildListener) listeners.elementAt(i));
Iterator iter = getBuildListeners();
while (iter.hasNext()) {
newProject.addBuildListener((BuildListener) iter.next());
}

if (output != null) {
@@ -390,6 +391,20 @@ public class Ant extends Task {
}
} finally {
// help the gc
Iterator iter = getBuildListeners();
while (iter.hasNext()) {
newProject.removeBuildListener((BuildListener) iter.next());
}
iter = newProject.getBuildListeners().iterator();
while (iter.hasNext()) {
Object o = iter.next();
if (o instanceof RecorderEntry) {
((RecorderEntry) o).close();
} else if (o instanceof AntClassLoader) {
((AntClassLoader) o).cleanup();
}
}
newProject = null;
Enumeration e = properties.elements();
while (e.hasMoreElements()) {
@@ -646,6 +661,13 @@ public class Ant extends Task {
propertySets.addElement(ps);
}

/**
* @since Ant 1.6.2
*/
private Iterator getBuildListeners() {
return getProject().getBuildListeners().iterator();
}

/**
* Helper class that implements the nested &lt;reference&gt;
* element of &lt;ant&gt; and &lt;antcall&gt;.


+ 9
- 2
src/main/org/apache/tools/ant/taskdefs/RecorderEntry.java View File

@@ -99,8 +99,7 @@ public class RecorderEntry implements BuildLogger {
+ StringUtils.LINE_SEP);
error.printStackTrace(out);
}
out.flush();
out.close();
close();
}


@@ -208,5 +207,13 @@ public class RecorderEntry implements BuildLogger {
}

}

/**
* @since 1.6.2
*/
public void close() {
out.flush();
out.close();
}
}


Loading…
Cancel
Save