You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Håkon Sagehaug <ha...@uni.no> on 2010/04/29 08:52:35 UTC

Rampart-77 out of memory when sending large files

Hi all,

My issue is related to Rampart 77[1], I get "Out of memory" when uploading a
large file(650 mb), to a web service with mtom and rampart enabled. The
stack trace looks like this

java.lang.OutOfMemoryError: Java heap space
        at org.apache.axiom.attachments.
utils.BAAOutputStream.addBuffer(BAAOutputStream.java:47)
        at
org.apache.axiom.attachments.utils.BAAOutputStream.receive(BAAOutputStream.java:106)
        at
org.apache.axiom.attachments.impl.BufferUtils.inputStream2BAAOutputStream(BufferUtils.java:217)
        at
org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:78)
        at
org.apache.axiom.attachments.impl.PartFactory.createPart(PartFactory.java:136)
        at
org.apache.axiom.attachments.Attachments.getPart(Attachments.java:672)
        at
org.apache.axiom.attachments.Attachments.getNextPartDataHandler(Attachments.java:590)
        at
org.apache.axiom.attachments.Attachments.getDataHandler(Attachments.java:345)
        at
org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:116)
        at
org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java:365)
        at
org.apache.axiom.om.impl.llom.OMStAXWrapper.getProperty(OMStAXWrapper.java:1036)
        at
javax.xml.stream.util.StreamReaderDelegate.getProperty(StreamReaderDelegate.java:257)
        at
org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:265)
        at
org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:246)
        at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:217)
        at org.apache.axiom.om.impl.dom.NodeImpl.build(NodeImpl.java:449)
        at
org.apache.axiom.om.impl.dom.DocumentImpl.build(DocumentImpl.java:486)
        at
org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:134)
        at
org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:158)
        at org.apache.rampart.RampartEngine.process(RampartEngine.java:70)
        at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
        at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
Apr 7, 2010 8:33:05 AM org.apache.coyote.http11.Http11Protocol pause

Was wondering if there was any solution for this? I noticed this mail[2] on
the list but no one answered on it. The transfer goes fine without rampart
enabled.

cheers, Håkon

[1] http://issues.apache.org/jira/browse/RAMPART-77
[2] http://osdir.com/ml/axis-user-ws.apache.org/2009-10/msg00051.html


-- 
Håkon Sagehaug, Scientific Programmer
Parallab, Uni BCCS/Uni Research
Hakon.Sagehaug@uni.no, phone +47 55584125

RE: Rampart-77 out of memory when sending large files

Posted by Martin Gainty <mg...@hotmail.com>.
EnableFromBAOS attempts to read Long.MAX_VALUE length from InputStream as seen here 
((ReadFromSupport)os).readFrom(is, Long.MAX_VALUE);

//you can try bypassing by setting ENABLE_BAOS_OPT false
<transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="org.apache.axiom.attachments.impl.BufferUtils.ENABLE_BAAOS_OPT">false</parameter>
........
</transportReceiver>
takk
Martin Gainty 
______________________________________________ 
Note de déni et de confidentialité
 
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.




Date: Thu, 29 Apr 2010 08:52:35 +0200
Subject: Rampart-77 out of memory when sending large files
From: hakon.sagehaug@uni.no
To: java-user@axis.apache.org

Hi all,

My issue is related to Rampart 77[1], I get "Out of 
memory" when uploading a large file(650 mb), to a web service with mtom 
and rampart enabled. The stack trace looks like this 

java.lang.OutOfMemoryError:
 Java heap space

        at org.apache.axiom.attachments.utils.BAAOutputStream.addBuffer(BAAOutputStream.java:47)
       
 at org.apache.axiom.attachments.utils.BAAOutputStream.receive(BAAOutputStream.java:106)
       
 at org.apache.axiom.attachments.impl.BufferUtils.inputStream2BAAOutputStream(BufferUtils.java:217)

        at org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:78)
       
 at org.apache.axiom.attachments.impl.PartFactory.createPart(PartFactory.java:136)
       
 at org.apache.axiom.attachments.Attachments.getPart(Attachments.java:672)

        at org.apache.axiom.attachments.Attachments.getNextPartDataHandler(Attachments.java:590)
       
 at org.apache.axiom.attachments.Attachments.getDataHandler(Attachments.java:345)
       
 at org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:116)

        at org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java:365)
       
 at org.apache.axiom.om.impl.llom.OMStAXWrapper.getProperty(OMStAXWrapper.java:1036)
       
 at javax.xml.stream.util.StreamReaderDelegate.getProperty(StreamReaderDelegate.java:257)

        at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:265)
       
 at org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:246)
       
 at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:217)

        at org.apache.axiom.om.impl.dom.NodeImpl.build(NodeImpl.java:449)
       
 at org.apache.axiom.om.impl.dom.DocumentImpl.build(DocumentImpl.java:486)
       
 at org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:134)

        at org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:158)
       
 at org.apache.rampart.RampartEngine.process(RampartEngine.java:70)
       
 at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)

        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
       
 at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
       
 at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)

        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
       
 at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
       
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
       
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
Apr
 7, 2010 8:33:05 AM org.apache.coyote.http11.Http11Protocol pause


Was wondering if there was any solution for this? I noticed this 
mail[2] on the list but no one answered on it. The transfer goes fine without rampart enabled.

cheers, Håkon

[1]
 http://issues.apache.org/jira/browse/RAMPART-77

[2] http://osdir.com/ml/axis-user-ws.apache.org/2009-10/msg00051.html

-- 
Håkon Sagehaug, Scientific Programmer



Parallab, Uni BCCS/Uni Research
Hakon.Sagehaug@uni.no, phone +47 55584125
 		 	   		  
_________________________________________________________________
The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail.
http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4

Re: Rampart-77 out of memory when sending large files

Posted by Amila Suriarachchi <am...@gmail.com>.
2010/4/29 Håkon Sagehaug <ha...@uni.no>

> Hi all,
>
> My issue is related to Rampart 77[1], I get "Out of memory" when uploading
> a large file(650 mb), to a web service with mtom and rampart enabled. The
> stack trace looks like this
>
> java.lang.OutOfMemoryError: Java heap space
>         at org.apache.axiom.attachments.
> utils.BAAOutputStream.addBuffer(BAAOutputStream.java:47)
>         at
> org.apache.axiom.attachments.utils.BAAOutputStream.receive(BAAOutputStream.java:106)
>         at
> org.apache.axiom.attachments.impl.BufferUtils.inputStream2BAAOutputStream(BufferUtils.java:217)
>         at
> org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:78)
>         at
> org.apache.axiom.attachments.impl.PartFactory.createPart(PartFactory.java:136)
>         at
> org.apache.axiom.attachments.Attachments.getPart(Attachments.java:672)
>         at
> org.apache.axiom.attachments.Attachments.getNextPartDataHandler(Attachments.java:590)
>         at
> org.apache.axiom.attachments.Attachments.getDataHandler(Attachments.java:345)
>         at
> org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:116)
>         at
> org.apache.axiom.om.impl.llom.OMTextImpl.getDataHandler(OMTextImpl.java:365)
>         at
> org.apache.axiom.om.impl.llom.OMStAXWrapper.getProperty(OMStAXWrapper.java:1036)
>         at
> javax.xml.stream.util.StreamReaderDelegate.getProperty(StreamReaderDelegate.java:257)
>         at
> org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:265)
>         at
> org.apache.axiom.om.impl.builder.StAXBuilder.createOMText(StAXBuilder.java:246)
>         at
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:217)
>         at org.apache.axiom.om.impl.dom.NodeImpl.build(NodeImpl.java:449)
>         at
> org.apache.axiom.om.impl.dom.DocumentImpl.build(DocumentImpl.java:486)
>         at
> org.apache.rampart.util.Axis2Util.getDocumentFromSOAPEnvelope(Axis2Util.java:134)
>         at
> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:158)
>         at org.apache.rampart.RampartEngine.process(RampartEngine.java:70)
>         at
> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
>         at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>         at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
>         at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
>         at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> Apr 7, 2010 8:33:05 AM org.apache.coyote.http11.Http11Protocol pause
>
> Was wondering if there was any solution for this? I noticed this mail[2] on
> the list but no one answered on it. The transfer goes fine without rampart
> enabled.
>

I think you need to increase the jvm heap size.

use some thing like Xmx2048m

thanks,
Amila.

>
> cheers, Håkon
>
> [1] http://issues.apache.org/jira/browse/RAMPART-77
> [2] http://osdir.com/ml/axis-user-ws.apache.org/2009-10/msg00051.html
>
>
> --
> Håkon Sagehaug, Scientific Programmer
> Parallab, Uni BCCS/Uni Research
> Hakon.Sagehaug@uni.no, phone +47 55584125
>



-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/