Browse Source

Log errors rather than ignoring them.

Submitted by: dion@multitask.com.au via "Vincent Massol" <vmassol@octo.com>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272158 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
0de17bca25
4 changed files with 40 additions and 13 deletions
  1. +6
    -7
      proposal/myrmidon/src/java/org/apache/antlib/cvslib/ChangeLog.java
  2. +9
    -4
      proposal/myrmidon/src/java/org/apache/antlib/cvslib/ChangeLogParser.java
  3. +6
    -0
      src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
  4. +19
    -2
      src/main/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java

+ 6
- 7
proposal/myrmidon/src/java/org/apache/antlib/cvslib/ChangeLog.java View File

@@ -14,12 +14,12 @@ import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Properties; import java.util.Properties;
import java.util.Vector; import java.util.Vector;
import java.util.ArrayList;
import java.util.Date;
import java.text.SimpleDateFormat;
import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources; import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.excalibur.io.IOUtil; import org.apache.avalon.excalibur.io.IOUtil;
@@ -28,7 +28,6 @@ import org.apache.myrmidon.api.TaskException;
import org.apache.myrmidon.framework.Execute; import org.apache.myrmidon.framework.Execute;
import org.apache.myrmidon.framework.FileSet; import org.apache.myrmidon.framework.FileSet;
import org.apache.tools.todo.types.Commandline; import org.apache.tools.todo.types.Commandline;
import org.apache.tools.todo.types.DirectoryScanner;


/** /**
* Change log task. * Change log task.
@@ -220,7 +219,7 @@ public class ChangeLog
} }
*/ */


final ChangeLogParser parser = new ChangeLogParser( userList );
final ChangeLogParser parser = new ChangeLogParser( userList, getContext() );
final Execute exe = new Execute(); final Execute exe = new Execute();
exe.setWorkingDirectory( m_dir ); exe.setWorkingDirectory( m_dir );
exe.setCommandline( command ); exe.setCommandline( command );
@@ -297,7 +296,7 @@ public class ChangeLog
final ArrayList results = new ArrayList(); final ArrayList results = new ArrayList();
for( int i = 0; i < entrySet.length; i++ ) for( int i = 0; i < entrySet.length; i++ )
{ {
final CVSEntry cvsEntry = entrySet[i ];
final CVSEntry cvsEntry = entrySet[ i ];
final Date date = cvsEntry.getDate(); final Date date = cvsEntry.getDate();
if( null != m_start && m_start.after( date ) ) if( null != m_start && m_start.after( date ) )
{ {
@@ -312,7 +311,7 @@ public class ChangeLog
results.add( cvsEntry ); results.add( cvsEntry );
} }


return (CVSEntry[])results.toArray( new CVSEntry[results.size() ] );
return (CVSEntry[])results.toArray( new CVSEntry[ results.size() ] );
} }


/** /**


+ 9
- 4
proposal/myrmidon/src/java/org/apache/antlib/cvslib/ChangeLogParser.java View File

@@ -12,9 +12,10 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Properties; import java.util.Properties;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.aut.nativelib.ExecOutputHandler; import org.apache.aut.nativelib.ExecOutputHandler;
import org.apache.avalon.excalibur.i18n.ResourceManager;
import org.apache.avalon.excalibur.i18n.Resources;
import org.apache.myrmidon.api.TaskContext;


/** /**
* A class used to parse the output of the CVS log command. * A class used to parse the output of the CVS log command.
@@ -48,6 +49,8 @@ class ChangeLogParser


private int m_status = GET_FILE; private int m_status = GET_FILE;


private final TaskContext m_context;

/** rcs entries */ /** rcs entries */
private final Hashtable m_entries = new Hashtable(); private final Hashtable m_entries = new Hashtable();


@@ -58,9 +61,11 @@ class ChangeLogParser
* *
* @param userList the userlist * @param userList the userlist
*/ */
public ChangeLogParser( Properties userList )
ChangeLogParser( final Properties userList,
final TaskContext context )
{ {
m_userList = userList; m_userList = userList;
m_context = context;
} }


/** /**
@@ -80,7 +85,7 @@ class ChangeLogParser
*/ */
public void stderr( String line ) public void stderr( String line )
{ {
//ignore
m_context.error( line );
} }


/** /**


+ 6
- 0
src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java View File

@@ -280,6 +280,12 @@ public class ChangeLogTask
throw new BuildException( ioe.toString() ); throw new BuildException( ioe.toString() );
} }


final String errors = handler.getErrors();
if( null != errors )
{
log( errors, Project.MSG_ERR );
}

final CVSEntry[] entrySet = parser.getEntrySetAsArray(); final CVSEntry[] entrySet = parser.getEntrySetAsArray();
final CVSEntry[] filteredEntrySet = filterEntrySet( entrySet ); final CVSEntry[] filteredEntrySet = filterEntrySet( entrySet );
writeChangeLog( filteredEntrySet ); writeChangeLog( filteredEntrySet );


+ 19
- 2
src/main/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java View File

@@ -72,12 +72,25 @@ class RedirectingStreamHandler
private final ChangeLogParser m_parser; private final ChangeLogParser m_parser;
private BufferedReader m_reader; private BufferedReader m_reader;
private InputStreamReader m_error; private InputStreamReader m_error;
private final StringBuffer m_errors = new StringBuffer();


public RedirectingStreamHandler( final ChangeLogParser parser )
RedirectingStreamHandler( final ChangeLogParser parser )
{ {
m_parser = parser; m_parser = parser;
} }


String getErrors()
{
if( 0 == m_errors.length() )
{
return null;
}
else
{
return m_errors.toString();
}
}

/** /**
* Install a handler for the input stream of the subprocess. * Install a handler for the input stream of the subprocess.
* *
@@ -127,7 +140,11 @@ class RedirectingStreamHandler
//http://developer.java.sun.com/developer/bugParade/bugs/4329985.html) //http://developer.java.sun.com/developer/bugParade/bugs/4329985.html)
while( m_error.ready() ) while( m_error.ready() )
{ {
m_error.read();
final int value = m_error.read();
if( -1 != value )
{
m_errors.append( (char)value );
}
} }
} }




Loading…
Cancel
Save