You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Nidhin Lazar (JIRA)" <ji...@apache.org> on 2017/09/04 11:58:00 UTC

[jira] [Commented] (AXIS2-5874) Memory leak when trying to getInputStream() from an External Repository data through AXIS

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

Nidhin Lazar commented on AXIS2-5874:
-------------------------------------


Below is the outof memory error stack trace.

java.lang.OutOfMemoryError: Java heap space
               at org.apache.axiom.attachments.utils.BAAOutputStream.addBuffer(BAAOutputStream.java:49)
               at org.apache.axiom.attachments.utils.BAAOutputStream.readFrom(BAAOutputStream.java:120)
               at org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:76)
               at org.apache.axiom.attachments.PartContentFactory.createPartContent(PartContentFactory.java:119)
               at org.apache.axiom.attachments.PartImpl.fetch(PartImpl.java:176)
               at org.apache.axiom.attachments.MIMEMessage.getNextPartDataHandler(MIMEMessage.java:299)
               at org.apache.axiom.attachments.MIMEMessage.fetchAllParts(MIMEMessage.java:264)
               at org.apache.axiom.attachments.MIMEMessage.getContentIDs(MIMEMessage.java:271)
               at org.apache.axiom.attachments.Attachments.getAllContentIDs(Attachments.java:298)
               at org.apache.axis2.jaxws.message.impl.MessageImpl.setMessageContext(MessageImpl.java:708)
               at org.apache.axis2.jaxws.core.MessageContext.<init>(MessageContext.java:122)
               at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:144)
               at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93)
               at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:373)
               at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:171)
               at com.sun.proxy.$Proxy40.downloadContent(Unknown Source)
               at com.emc.kazeon.connector.opentext.Connector.DownloadDH(Connector.java:288)
               at com.emc.kazeon.connector.opentext.Connector.getObjectContent(Connector.java:760)
               at com.emc.kazeon.connector.websvc.Webservice.readObject(Webservice.java:842)
               at com.emc.kazeon.csvc.stubs.KazConnectorSvcMessageReceiverInOut.invokeBusinessLogic(Unknown Source)
               at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
               at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
               at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
               at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
               at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)


> Memory leak when trying to getInputStream() from an External Repository data through AXIS
> -----------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5874
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5874
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws, wsdl
>    Affects Versions: 1.6.2
>         Environment: Windows 2008
>            Reporter: Nidhin Lazar
>            Priority: Blocker
>             Fix For: 1.6.2
>
>
> We are using AXIS WS to connect and download files from an external repository .We are using SOAP based webservice calls download an object. The API returns a DataHandler object, from where we are getting the input stream. We have tried closing the inputstream object but even after the close call we can see that the memory is still holding the stream, and eventually the client machine is running out of memory.Any help on this would be highly appreciated.
> Our client code is as shown below
> URL url = new URL("http://"+host+"/ws/CntSrvc.svc?wsdl");
> CntSrvc_Svc cService = new CntSrvc_Svc(url);
> CntSrvc cntSrvcClient = cService.getBasicHttpBindingCntSrvc(new MTOMFeature());
> InputStream in = null ;
> in = cntSrvcClient.download(contextIDString).getInputStream();
> // write in to a file.
> //closing the input stream
> if (in != null){
>  in.close(); 
> }
> [Note;] Our client code runs under tomcat container, and this acts as a server to other services.
> [Note:]We have created a sample client without using AXIS, where our client connecting to external repository and download content.Here we donot see any memory leak.Our investigation proves that its when we use AXIS and getinputstream() the memory is leaking, input stream is not closing.Our current framework demands AXIS hence we would like to get a solution or workaround for this issue



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org