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/