You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2005/04/19 06:33:59 UTC
cvs commit: maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/observers ChecksumObserver.java
brett 2005/04/18 21:33:59
Modified: wagon-provider-api/src/main/java/org/apache/maven/wagon/observers
ChecksumObserver.java
Log:
can't remove on the fly - is called in the middle of an iterator
Revision Changes Path
1.15 +21 -9 maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/observers/ChecksumObserver.java
Index: ChecksumObserver.java
===================================================================
RCS file: /home/cvs/maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/observers/ChecksumObserver.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ChecksumObserver.java 19 Apr 2005 03:58:43 -0000 1.14
+++ ChecksumObserver.java 19 Apr 2005 04:33:59 -0000 1.15
@@ -52,6 +52,8 @@
private final String extension;
+ private boolean transferringChecksum = false;
+
static
{
algorithmExtensionMap.put( "MD5", ".md5" );
@@ -92,11 +94,14 @@
*/
public void transferStarted( TransferEvent transferEvent )
{
- expectedChecksum = null;
+ if ( !transferringChecksum )
+ {
+ expectedChecksum = null;
- actualChecksum = null;
+ actualChecksum = null;
- digester.reset();
+ digester.reset();
+ }
}
/**
@@ -104,11 +109,19 @@
*/
public void transferProgress( TransferEvent transferEvent, byte[] buffer, int length )
{
- digester.update( buffer, 0, length );
+ if ( !transferringChecksum )
+ {
+ digester.update( buffer, 0, length );
+ }
}
public void transferCompleted( TransferEvent transferEvent )
{
+ if ( transferringChecksum )
+ {
+ return;
+ }
+
Wagon wagon = transferEvent.getWagon();
actualChecksum = encode( digester.digest() );
@@ -119,6 +132,8 @@
int type = transferEvent.getRequestType();
+ transferringChecksum = true;
+
try
{
if ( type == TransferEvent.REQUEST_GET )
@@ -130,9 +145,7 @@
File checksumFile = new File( artifactFile.getPath() + extension );
- wagon.removeTransferListener( this );
wagon.get( checksumResource, checksumFile );
- wagon.addTransferListener( this );
expectedChecksum = FileUtils.fileRead( checksumFile ).trim();
}
@@ -148,9 +161,7 @@
{
FileUtils.fileWrite( file.getPath(), actualChecksum );
- wagon.removeTransferListener( this );
wagon.put( file, checksumResource );
- wagon.addTransferListener( this );
}
finally
{
@@ -175,6 +186,7 @@
{
IoUtils.close( inputStream );
+ transferringChecksum = false;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-cvs-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-cvs-help@maven.apache.org