[ 
https://issues.apache.org/jira/browse/WAGON-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16444572#comment-16444572
 ] 

Chris Lott commented on WAGON-518:
----------------------------------

Latest workaround: use LightweightHttpWagon which does not override the 
putFromStream() method. Got tripped up by a null-pointer exception so now I set 
the authenticator field as shown below, please advise on correct usage.
{code:java}
       LightweightHttpWagon lw = new LightweightHttpWagon();
       lw.setAuthenticator(new LightweightHttpWagonAuthenticator());
{code}

> AbstractHttpClientWagon#putFromStream reads entire content to memory
> --------------------------------------------------------------------
>
>                 Key: WAGON-518
>                 URL: https://issues.apache.org/jira/browse/WAGON-518
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-http
>    Affects Versions: 2.12
>            Reporter: Chris Lott
>            Priority: Major
>
> Method putFromSteam in class AbstractHttpClientWagon seems to violate the 
> implied contract of working with streams.  It uses much memory because it 
> first consumes the input stream argument, then transfers that content.  The 
> code that consumes the stream is in the private class 
> RequestEntityImplementation ctor:
> {code:java}
>      byte[] bytes = IOUtil.toByteArray( stream );{code}
> Please revise it, if possible, to behave more like the superclass 
> StreamWagon's putFromStream method, which does the transfer straight from the 
> input stream.
> We are attempting to PUT some 150MB artifacts in a java microservice that 
> runs with rather sharp memory limits.  As a local workaround we increased the 
> JVM's -Xmx argument but that way lies madness.
> Thanks in advance for any suggestions or workarounds. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to