Ant tags do not redirect stderr ou stdout to Ant tag
----------------------------------------------------
Key: JELLY-209
URL: http://issues.apache.org/jira/browse/JELLY-209
Project: jelly
Type: Bug
Components: taglib.ant
Versions: 1.0
Environment: Sun JDK 1.4.2_07, commons-jelly-1.0-RC1.jar,
commons-jelly-tags-ant-1.0.jar
Reporter: Cyrille Le Clerc
Attachments: AntTag.java.diff
Ant tag (org.apache.commons.jelly.tags.ant.AntTag) does not redirect System.out
and System.err to the target Ant tag (through the Ant Project). Due to this,
System.out and System.err are not handled by Ant tasks (e.g. JunitTask should
output in TEST-xxx.xml stdout and stderr).
Sample of code to redirect stdout and stderr in
org.apache.tools.ant.Main#runBuild(ClassLoader), version 1.6.2 :
System.setOut(new PrintStream(new DemuxOutputStream(project, false)));
System.setErr(new PrintStream(new DemuxOutputStream(project, true)));
Patch :
To patch this problem, I modified org.apache.commons.jelly.tags.ant.AntTag to
redirect stdout and stderr before calling "task.perform()" and, after the task
execution, reset stdout an stderr to their initial values.
Diff of org.apache.commons.jelly.tags.ant.AntTag
(It does not seem to be possible to attach files in Jira)
Index: AntTag.java
===================================================================
RCS file:
/home/cvspublic/jakarta-commons/jelly/jelly-tags/ant/src/java/org/apache/commons/jelly/tags/ant/AntTag.java,v
retrieving revision 1.34
diff -r1.34 AntTag.java
18a19
> import java.io.PrintStream;
36a38
> import org.apache.tools.ant.DemuxOutputStream;
185c187,199
< task.perform();
---
> // according to org.apache.tools.ant.Main, redirect stdout
> and stderr
> PrintStream initialOut = System.out;
> PrintStream initialErr = System.err;
> PrintStream newOut = new PrintStream(new
> DemuxOutputStream(project, false));
> PrintStream newErr = new PrintStream(new
> DemuxOutputStream(project, true));
> try{
> System.setOut(newOut);
> System.setErr(newErr);
> task.perform();
> } finally {
> System.setOut(initialOut);
> System.setErr(initialErr);
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]