You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/03/14 18:15:35 UTC
svn commit: r1300649 - in /maven/wagon/trunk/wagon-providers:
wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java
Author: olamy
Date: Wed Mar 14 17:15:35 2012
New Revision: 1300649
URL: http://svn.apache.org/viewvc?rev=1300649&view=rev
Log:
[WAGON-367] Very large number of temporary files "http-wagon.*.tmp" if wagon is used in a long time running JVM (like a CI server).
Modified:
maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java
Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java?rev=1300649&r1=1300648&r2=1300649&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java Wed Mar 14 17:15:35 2012
@@ -54,9 +54,9 @@ import org.apache.maven.wagon.resource.R
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -83,7 +83,9 @@ public abstract class AbstractHttpClient
private final Wagon wagon;
- private final File source;
+ private File source;
+
+ private byte[] bytes;
private RequestEntityImplementation( final InputStream stream, final Resource resource, final Wagon wagon,
final File source )
@@ -95,23 +97,13 @@ public abstract class AbstractHttpClient
}
else
{
- FileOutputStream fos = null;
try
{
- this.source = File.createTempFile( "http-wagon.", ".tmp" );
- this.source.deleteOnExit();
-
- fos = new FileOutputStream( this.source );
- IOUtil.copy( stream, fos );
+ this.bytes = IOUtil.toByteArray( stream );
}
catch ( IOException e )
{
- fireTransferError( resource, e, TransferEvent.REQUEST_PUT );
- throw new TransferFailedException( "Failed to buffer stream contents to temp file for upload.", e );
- }
- finally
- {
- IOUtil.close( fos );
+ throw new TransferFailedException( e.getMessage(), e );
}
}
@@ -143,10 +135,10 @@ public abstract class AbstractHttpClient
new TransferEvent( wagon, resource, TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_PUT );
transferEvent.setTimestamp( System.currentTimeMillis() );
- FileInputStream fin = null;
+ InputStream fin = null;
try
{
- fin = new FileInputStream( source );
+ fin = this.source != null ? new FileInputStream( source ) : new ByteArrayInputStream( this.bytes );
int remaining = Integer.MAX_VALUE;
while ( remaining > 0 )
{
Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java?rev=1300649&r1=1300648&r2=1300649&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java Wed Mar 14 17:15:35 2012
@@ -19,7 +19,6 @@ package org.apache.maven.wagon.shared.ht
* under the License.
*/
-import org.apache.commons.io.IOUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpException;
@@ -69,6 +68,7 @@ import org.apache.maven.wagon.events.Tra
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.repository.Repository;
import org.apache.maven.wagon.resource.Resource;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
import javax.net.ssl.SSLException;
@@ -110,8 +110,6 @@ public abstract class AbstractHttpClient
private final Wagon wagon;
- //private InputStream stream;
-
private byte[] bytes;
private File source;
@@ -130,7 +128,7 @@ public abstract class AbstractHttpClient
{
try
{
- this.bytes = IOUtils.toByteArray( stream );
+ this.bytes = IOUtil.toByteArray( stream );
}
catch ( IOException e )
{
@@ -156,7 +154,7 @@ public abstract class AbstractHttpClient
{
return new FileInputStream( this.source );
}
- return new ByteArrayInputStream( this.bytes );// this.stream;
+ return new ByteArrayInputStream( this.bytes );
}
public boolean isRepeatable()