Author: olamy
Date: Wed Mar 14 23:49:58 2012
New Revision: 1300790

URL: http://svn.apache.org/viewvc?rev=1300790&view=rev
Log:
as we need to store bytes in memory for eventually retry request to put 
metadata, store it in a ByteBuffer

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=1300790&r1=1300789&r2=1300790&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 23:49:58 2012
@@ -61,6 +61,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLEncoder;
+import java.nio.ByteBuffer;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
@@ -85,7 +86,7 @@ public abstract class AbstractHttpClient
 
         private File source;
 
-        private byte[] bytes;
+        private ByteBuffer byteBuffer;
 
         private RequestEntityImplementation( final InputStream stream, final 
Resource resource, final Wagon wagon,
                                              final File source )
@@ -99,7 +100,9 @@ public abstract class AbstractHttpClient
             {
                 try
                 {
-                    this.bytes = IOUtil.toByteArray( stream );
+                    byte[] bytes = IOUtil.toByteArray( stream );
+                    this.byteBuffer = ByteBuffer.allocate( bytes.length );
+                    this.byteBuffer.put( bytes );
                 }
                 catch ( IOException e )
                 {
@@ -138,7 +141,9 @@ public abstract class AbstractHttpClient
             InputStream fin = null;
             try
             {
-                fin = this.source != null ? new FileInputStream( source ) : 
new ByteArrayInputStream( this.bytes );
+                fin = this.source != null
+                    ? new FileInputStream( source )
+                    : new ByteArrayInputStream( this.byteBuffer.array() );
                 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=1300790&r1=1300789&r2=1300790&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 23:49:58 2012
@@ -81,6 +81,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.URLEncoder;
+import java.nio.ByteBuffer;
 import java.security.cert.X509Certificate;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -110,7 +111,7 @@ public abstract class AbstractHttpClient
 
         private final Wagon wagon;
 
-        private byte[] bytes;
+        private ByteBuffer byteBuffer;
 
         private File source;
 
@@ -128,7 +129,9 @@ public abstract class AbstractHttpClient
             {
                 try
                 {
-                    this.bytes = IOUtil.toByteArray( stream );
+                    byte[] bytes = IOUtil.toByteArray( stream );
+                    byteBuffer = ByteBuffer.allocate( bytes.length );
+                    byteBuffer.put( bytes );
                 }
                 catch ( IOException e )
                 {
@@ -154,7 +157,7 @@ public abstract class AbstractHttpClient
             {
                 return new FileInputStream( this.source );
             }
-            return new ByteArrayInputStream( this.bytes );
+            return new ByteArrayInputStream( this.byteBuffer.array() );
         }
 
         public boolean isRepeatable()
@@ -173,8 +176,9 @@ public abstract class AbstractHttpClient
             TransferEvent transferEvent =
                 new TransferEvent( wagon, resource, 
TransferEvent.TRANSFER_PROGRESS, TransferEvent.REQUEST_PUT );
             transferEvent.setTimestamp( System.currentTimeMillis() );
-            InputStream instream =
-                this.source != null ? new FileInputStream( this.source ) : new 
ByteArrayInputStream( this.bytes );
+            InputStream instream = this.source != null
+                ? new FileInputStream( this.source )
+                : new ByteArrayInputStream( this.byteBuffer.array() );
             try
             {
                 byte[] buffer = new byte[BUFFER_SIZE];


Reply via email to