From 7eb6ca9aa8b38b24196a2b43bb11429e8e651048 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 11 Apr 2002 11:41:46 +0000 Subject: [PATCH] reset state in git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272369 13f79535-47bb-0310-9956-ffa450edef68 --- .../ant/taskdefs/cvslib/ChangeLogTask.java | 145 +++++++++--------- 1 file changed, 75 insertions(+), 70 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java index e37d025a1..539935772 100644 --- a/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java @@ -101,6 +101,7 @@ import org.apache.tools.ant.types.FileSet; * @author Jeff Martin * @author Peter Donald * @version $Revision$ $Date$ + * @since Ant 1.5 * @ant.task name="changelog" */ public class ChangeLogTask @@ -194,7 +195,8 @@ public class ChangeLogTask */ public void setDaysinpast( final int days ) { - final long time = System.currentTimeMillis() - (long)days * 24 * 60 * 60 * 1000; + final long time = System.currentTimeMillis() + - (long)days * 24 * 60 * 60 * 1000; setStart( new Date( time ) ); } @@ -213,82 +215,83 @@ public class ChangeLogTask */ public void execute() throws BuildException { - validate(); - - final Properties userList = new Properties(); - - loadUserlist( userList ); - - for( Enumeration e = m_cvsUsers.elements(); e.hasMoreElements(); ) - { - final CvsUser user = (CvsUser)e.nextElement(); - user.validate(); - userList.put( user.getUserID(), user.getDisplayname() ); - } - - final Commandline command = new Commandline(); - command.setExecutable( "cvs" ); - command.createArgument().setValue( "log" ); - - if( null != m_start ) - { - final SimpleDateFormat outputDate = - new SimpleDateFormat( "yyyy-MM-dd" ); - - // We want something of the form: -d ">=YYYY-MM-dd" - final String dateRange = "-d >=" + outputDate.format( m_start ); - command.createArgument().setValue( dateRange ); - } + File savedDir = m_dir; // may be altered in validate + try { + + validate(); + + final Properties userList = new Properties(); + + loadUserlist( userList ); + + for( Enumeration e = m_cvsUsers.elements(); + e.hasMoreElements(); ) { + final CvsUser user = (CvsUser)e.nextElement(); + user.validate(); + userList.put( user.getUserID(), user.getDisplayname() ); + } + + final Commandline command = new Commandline(); + command.setExecutable( "cvs" ); + command.createArgument().setValue( "log" ); + + if( null != m_start ) { + final SimpleDateFormat outputDate = + new SimpleDateFormat( "yyyy-MM-dd" ); + + // We want something of the form: -d ">=YYYY-MM-dd" + final String dateRange = "-d >=" + + outputDate.format( m_start ); + command.createArgument().setValue( dateRange ); + } - // Check if list of files to check has been specified - if( !m_filesets.isEmpty() ) - { - final Enumeration e = m_filesets.elements(); - while( e.hasMoreElements() ) - { - final FileSet fileSet = (FileSet)e.nextElement(); - final DirectoryScanner scanner = fileSet.getDirectoryScanner( project ); - final String[] files = scanner.getIncludedFiles(); - for( int i = 0; i < files.length; i++ ) - { - command.createArgument().setValue( files[ i ] ); + // Check if list of files to check has been specified + if( !m_filesets.isEmpty() ) { + final Enumeration e = m_filesets.elements(); + while( e.hasMoreElements() ) { + final FileSet fileSet = (FileSet)e.nextElement(); + final DirectoryScanner scanner = + fileSet.getDirectoryScanner( project ); + final String[] files = scanner.getIncludedFiles(); + for( int i = 0; i < files.length; i++ ) { + command.createArgument().setValue( files[ i ] ); + } } } - } - - final ChangeLogParser parser = new ChangeLogParser( userList ); - final RedirectingStreamHandler handler = - new RedirectingStreamHandler( parser ); - log( "ChangeLog command: [" + command.toString() + "]", Project.MSG_VERBOSE ); + final ChangeLogParser parser = new ChangeLogParser( userList ); + final RedirectingStreamHandler handler = + new RedirectingStreamHandler( parser ); + + log( "ChangeLog command: [" + command.toString() + "]", + Project.MSG_VERBOSE ); + + final Execute exe = new Execute( handler ); + exe.setWorkingDirectory( m_dir ); + exe.setCommandline( command.getCommandline() ); + exe.setAntRun( getProject() ); + try { + final int resultCode = exe.execute(); + if( 0 != resultCode ) { + throw new BuildException( "Error running cvs log" ); + } + } catch( final IOException ioe ) { + throw new BuildException( ioe.toString() ); + } - final Execute exe = new Execute( handler ); - exe.setWorkingDirectory( m_dir ); - exe.setCommandline( command.getCommandline() ); - exe.setAntRun( getProject() ); - try - { - final int resultCode = exe.execute(); - if( 0 != resultCode ) - { - throw new BuildException( "Error running cvs log" ); + final String errors = handler.getErrors(); + if( null != errors ) { + log( errors, Project.MSG_ERR ); } - } - catch( final IOException ioe ) - { - 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[] filteredEntrySet = filterEntrySet( entrySet ); + writeChangeLog( filteredEntrySet ); - final CVSEntry[] entrySet = parser.getEntrySetAsArray(); - final CVSEntry[] filteredEntrySet = filterEntrySet( entrySet ); - writeChangeLog( filteredEntrySet ); + } finally { + m_dir = savedDir; + } } /** @@ -310,12 +313,14 @@ public class ChangeLogTask } if( !m_dir.exists() ) { - final String message = "Cannot find base dir " + m_dir.getAbsolutePath(); + final String message = "Cannot find base dir " + + m_dir.getAbsolutePath(); throw new BuildException( message ); } if( null != m_usersFile && !m_usersFile.exists() ) { - final String message = "Cannot find user lookup list " + m_usersFile.getAbsolutePath(); + final String message = "Cannot find user lookup list " + + m_usersFile.getAbsolutePath(); throw new BuildException( message ); } }