Hi,
> http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?view=markup)
>
> and was not sure what changes were made here and elsewhere that would
> solve this problem. I can pull in 2.4.<LATEST> and see what changes
> and report back.
>

Fix is on 2.3.6-SNAPSHOT, 2.4.2-SNAPSHOT, trunk

Give it a try please
thanks, Sergey

> Stephen
>
>
>>
>> Sergey
>>
>> On Mon, Jun 27, 2011 at 9:43 PM, Sergey Beryozkin <[email protected]> 
>> wrote:
>>> Hi
>>>
>>> On Mon, Jun 27, 2011 at 7:25 PM, Stephen Evanchik <[email protected]> 
>>> wrote:
>>>> Hi everyone,
>>>>
>>>> I am using CXF 2.4.0 and having trouble issuing a PUT with a large
>>>> payload (100MB+ but this is dependent on the JVM heap size). I receive
>>>> an OutOfMemoryError originating from
>>>> sun.net.www.http.PosterOutputStream because the Content-Length is not
>>>> sent and chunking is not enabled.
>>>>
>>>> My question: How can I stream the data in the circumstances when I
>>>> know the entity length and enable chunking when I do not know the
>>>> entity length?
>>>>
>>>> I have traced the code and found that in HTTPConduit.java the
>>>> following TODO is present:
>>>>
>>>>    public void prepare(Message message) throws IOException {
>>>> ....
>>>>        // DELETE does not work and empty PUTs cause misleading exceptions
>>>>        // if chunking is enabled
>>>>        // TODO : ensure chunking can be enabled for non-empty PUTs -
>>>> if requested
>>>>        if (connection.getRequestMethod().equals("POST")
>>>>            && csPolicy.isAllowChunking()) {
>>>> ....
>>>>
>>>
>>> I recall adding these comments but I don't remember why I decided not
>>> to handle PUTs too - most likely it has to be fixed - will be for
>>> 2.4.2
>>>
>>>> which seems to indicate that there is no way to accomplish this
>>>> without modifying HTTPConduit. Is that correct?
>>>>
>>>> Could I create an implementation of AbstractPhaseInterceptor bound to
>>>> Phase.PREPARE_SEND_ENDING and use:
>>>>
>>>>         HttpURLConnection conn = 
>>>> message.get(HttpConduit.KEY_HTTP_CONNECTION);
>>>>         configure(conn);
>>>>
>>>>         message.setContent(OutputStream.class, <Stream implementation
>>>> that does what I want with conn>
>>>>
>>>> ?
>>>
>>> This latter option may work. Consider trying multiparts as well
>>>
>>> Thanks, Sergey
>>>
>>>>
>>>> Thanks for any help you can offer.
>>>>
>>>> Stephen
>>>>
>>>>
>>>> --
>>>> Stephen Evanchik
>>>> http://stephen.evanchik.com
>>>>
>>>
>>>
>>>
>>> --
>>> Sergey Beryozkin
>>>
>>> Application Integration Division of Talend
>>> http://sberyozkin.blogspot.com
>>>
>>
>
>
>
> --
> Stephen Evanchik
> http://stephen.evanchik.com
>

Reply via email to