[
https://issues.apache.org/jira/browse/WAGON-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16454353#comment-16454353
]
Chris Lott edited comment on WAGON-518 at 4/26/18 3:07 PM:
-----------------------------------------------------------
Finally tested for real. Used branch WAGON-518 to build version 3.1.0-SNAPSHOT,
and with that referenced in my pom I successfully uploaded a 9.4MB file using a
3MB Java memory limit (VM argument -Xmx3m). Then I re-ran the same config+test
using version 3.0.0 and it failed with a heap-space exception. So this fix has
definitely passed my test.
When do you think you might possibly be releasing a version?
was (Author: chrislott):
Finally tested for real. Used branch WAGON-518 to build version 3.1.0-SNAPSHOT,
and with that referenced in my pom I successfully uploaded a 9.4MB file using a
3MB Java memory limit (VM argument -Xmx3m). Then I backed off to version 3.0.0
and it failed with a heap-space exception. So this fix has definitely passed my
test.
When do you think you might possibly be releasing a version?
> 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
> Assignee: Michael Osipov
> Priority: Major
> Fix For: 3.1.0
>
>
> 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)