donaldp 02/03/31 22:35:41 Modified: src/main/org/apache/tools/ant/taskdefs/cvslib RedirectingStreamHandler.java Log: Made sure error is read (and ignored?) to avoid blocking. Reported By: Vincent Massol Revision Changes Path 1.2 +16 -6 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java Index: RedirectingStreamHandler.java =================================================================== RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- RedirectingStreamHandler.java 28 Mar 2002 22:58:21 -0000 1.1 +++ RedirectingStreamHandler.java 1 Apr 2002 06:35:41 -0000 1.2 @@ -7,24 +7,25 @@ */ package org.apache.tools.ant.taskdefs.cvslib; -import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; -import java.io.OutputStream; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.BufferedReader; +import java.io.OutputStream; +import org.apache.tools.ant.taskdefs.ExecuteStreamHandler; /** * A dummy stream handler that just passes stuff to the parser. * * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a> - * @version $Revision: 1.1 $ $Date: 2002/03/28 22:58:21 $ + * @version $Revision: 1.2 $ $Date: 2002/04/01 06:35:41 $ */ class RedirectingStreamHandler implements ExecuteStreamHandler { private final ChangeLogParser m_parser; private BufferedReader m_reader; + private InputStreamReader m_error; public RedirectingStreamHandler( final ChangeLogParser parser ) { @@ -49,7 +50,7 @@ */ public void setProcessErrorStream( InputStream is ) throws IOException { - //ignore + m_error = new InputStreamReader( is ); } /** @@ -59,7 +60,7 @@ */ public void setProcessOutputStream( InputStream is ) throws IOException { - m_reader = new BufferedReader(new InputStreamReader(is)); + m_reader = new BufferedReader( new InputStreamReader( is ) ); } /** @@ -72,6 +73,15 @@ { m_parser.stdout( line ); line = m_reader.readLine(); + } + + // Read the error stream so that it does not block ! + // We cannot use a BufferedReader as the ready() method is bugged! + // (see Bug 4329985, which is supposed to be fixed in JDK1.4 : + //http://developer.java.sun.com/developer/bugParade/bugs/4329985.html) + while( m_error.ready() ) + { + m_error.read(); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>