You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Andreas Veithen <an...@gmail.com> on 2015/12/01 20:14:02 UTC

Re: OutOfMemory issue with Axiom

See comments inline.

Andreas

On Fri, Nov 27, 2015 at 6:41 AM, Rohit Singh
<ro...@nucleussoftware.com> wrote:
> Hi,
>
>
>
> I am using axiom-api-1.2.14.jar and axiom-impl-1.2.14.jar.
>
> My SOAP response returns List<String> whose size is 150. Each string having
> size of 1.8 mb(avg).
>
> When such huge data returns to axiom stax parsing, It suddenly increase the
> the heap memory by 600 mb

With payloadCaching=true that would be the expected amount of memory
to store the message.

> which continued to reatain and not gets relaesed.
>
> When I analyse this in visualvm I found that OMTextImpl class is taking this
> memory alone.
>
> For the next hit this size increase to 1200mb and again this memory does not
> get freed.

This sounds like the memory doesn't get freed after the message has
been processed. Have you tried to determine what keeps the objects in
memory (i.e. what is the chain of strong references from the GC root
to the OMTextImpl objects)?

>
>
> For next 2-3 hits , system goes to OutOfMemory.
>
>
>
> I am using below configuration:
>
> #messageFactory (axiom) configuration
>
> messageFactory.payloadCaching=true
>
>
>
>
>
> When I use  messageFactory.payloadCaching=false        (I don’t know whether
> this will solve the problem or not)
>
> I face below exception:
>
> 23:21:19.467   [http-bio-8080-exec-1] ERROR
> o.a.c.s.spi.TransactionErrorHandler - Failed delivery for (MessageId:
> ID-NII414LEDF0240-62759-1448560261807-0-1 on ExchangeId:
> ID-NII414LEDF0240-62759-1448560261807-0-2). Exhausted after delivery
> attempt: 2 caught: org.apache.camel.InvalidPayloadException: No body
> available of type: java.io.InputStream but has value:
> org.springframework.util.xml.StaxSource@7fe0f13a of type:
> org.springframework.util.xml.StaxSource on:
> SpringWebserviceMessage[AxiomSoapMessage]. Caused by: Error during type
> conversion from type: org.springframework.util.xml.StaxSource to the
> required type: java.io.InputStream with value
> org.springframework.util.xml.StaxSource@7fe0f13a due
> java.lang.NullPointerException.
> Exchange[SpringWebserviceMessage[AxiomSoapMessage]]. Caused by:
> [org.apache.camel.TypeConversionException - Error during type conversion
> from type: org.springframework.util.xml.StaxSource to the required type:
> java.io.InputStream with value
> org.springframework.util.xml.StaxSource@7fe0f13a due
> java.lang.NullPointerException]
>
>
>
> Message History
>
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> RouteId              ProcessorId          Processor
> Elapsed (ms)
>
> [searchGlobalCollat] [searchGlobalCollat] [
> ] [      1029]
>
> [searchGlobalCollat] [unmarshal2        ] [unmarshal[ref:jaxb]
> ] [      1029]
>
>
>
> Exchange
>
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> Exchange[
>
>                 Id
> ID-NII414LEDF0240-62759-1448560261807-0-2
>
>                 ExchangePattern     InOptionalOut
>
>                 Headers
> {breadcrumbId=ID-NII414LEDF0240-62759-1448560261807-0-1,
> CamelRedelivered=true, CamelRedeliveryCounter=1,
> CamelRedeliveryMaxCounter=1,
> CamelSpringWebserviceSoapHeader=org.springframework.util.xml.StaxSource@1143c2b6}
>
>                 BodyType            org.springframework.util.xml.StaxSource
>
>                 Body                [Body is instance of
> java.xml.transform.Source]
>
> ]
>
>
>
> Stacktrace
>
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> org.apache.camel.InvalidPayloadException: No body available of type:
> java.io.InputStream but has value:
> org.springframework.util.xml.StaxSource@7fe0f13a of type:
> org.springframework.util.xml.StaxSource on:
> SpringWebserviceMessage[AxiomSoapMessage]. Caused by: Error during type
> conversion from type: org.springframework.util.xml.StaxSource to the
> required type: java.io.InputStream with value
> org.springframework.util.xml.StaxSource@7fe0f13a due
> java.lang.NullPointerException.
> Exchange[SpringWebserviceMessage[AxiomSoapMessage]]. Caused by:
> [org.apache.camel.TypeConversionException - Error during type conversion
> from type: org.springframework.util.xml.StaxSource to the required type:
> java.io.InputStream with value
> org.springframework.util.xml.StaxSource@7fe0f13a due
> java.lang.NullPointerException]
>
>                 at
> org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:59)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:218)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:181)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:34)
> [spring-tx-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
> [spring-tx-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:174)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:134)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:112)
> [camel-spring-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)
> [camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.component.spring.ws.SpringWebserviceConsumer.invoke(SpringWebserviceConsumer.java:59)
> [camel-spring-ws-2.12.3.jar:2.12.3]
>
>                 at
> org.springframework.ws.server.endpoint.adapter.MessageEndpointAdapter.invoke(MessageEndpointAdapter.java:41)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:233)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:173)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:292)
> [spring-ws-core-2.1.4.RELEASE.jar:na]
>
>                 at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
> [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
> [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
> [servlet-api.jar:na]
>
>                 at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
> [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
> [servlet-api.jar:na]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> [catalina.jar:7.0.50]
>
>                 at
> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202)
> [javamelody-core-1.51.0.jar:1.51.0]
>
>                 at
> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180)
> [javamelody-core-1.51.0.jar:1.51.0]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> [catalina.jar:7.0.50]
>
>                 at
> com.github.ziplet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:300)
> [ziplet-2.0.0.jar:na]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
> [catalina.jar:7.0.50]
>
>                 at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
> [tomcat-coyote.jar:7.0.50]
>
>                 at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
> [tomcat-coyote.jar:7.0.50]
>
>                 at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
> [tomcat-coyote.jar:7.0.50]
>
>                 at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> [na:1.6.0_31]
>
>                 at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> [na:1.6.0_31]
>
>                 at java.lang.Thread.run(Thread.java:662) [na:1.6.0_31]
>
> Caused by: org.apache.camel.TypeConversionException: Error during type
> conversion from type: org.springframework.util.xml.StaxSource to the
> required type: java.io.InputStream with value
> org.springframework.util.xml.StaxSource@7fe0f13a due
> java.lang.NullPointerException
>
>                 at
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:173)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 ... 51 common frames omitted
>
> Caused by: org.apache.camel.RuntimeCamelException:
> java.lang.NullPointerException
>
>                 at
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1363)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1005)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.impl.converter.InstanceMethodTypeConverter.convertTo(InstanceMethodTypeConverter.java:78)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:275)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 at
> org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:164)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 ... 52 common frames omitted
>
> Caused by: java.lang.NullPointerException: null
>
>                 at
> org.apache.axiom.om.impl.llom.SwitchingWrapper.next(SwitchingWrapper.java:965)
> ~[axiom-impl-1.2.14.jar:1.2.14]
>
>                 at
> javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:60)
> ~[na:1.6.0_31]
>
>                 at
> org.springframework.util.xml.StaxStreamXMLReader.parseInternal(StaxStreamXMLReader.java:123)
> ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.springframework.util.xml.AbstractStaxXMLReader.parse(AbstractStaxXMLReader.java:155)
> ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.springframework.util.xml.AbstractStaxXMLReader.parse(AbstractStaxXMLReader.java:139)
> ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE]
>
>                 at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
> ~[xalan-2.7.1.jar:na]
>
>                 at
> com.nucleus.integration.core.camel.converter.XmlConverter.sourceToInputStream(XmlConverter.java:53)
> ~[neutrino-integration-core-1.41-SNAPSHOT.jar:na]
>
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method) ~[na:1.6.0_31]
>
>                 at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> ~[na:1.6.0_31]
>
>                 at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> ~[na:1.6.0_31]
>
>                 at java.lang.reflect.Method.invoke(Method.java:597)
> ~[na:1.6.0_31]
>
>                 at
> org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1001)
> ~[camel-core-2.12.3.jar:2.12.3]
>
>                 ... 55 common frames omitted
>

The code that throws the NullPointerException has been entirely
rewritten. Can you test that with Axiom 1.2.16?

>
> Your help will be highly appreciated.
>
>
>
> Rgrds,Rohit
>
>
> ________________________________
> This e-mail, along with any files transmitted with it, is confidential or
> proprietary or legally privileged and for the sole use of the intended
> recipient(s). If you happen to receive this e-mail and you are not the
> intended recipient, please notify us immediately by reply e-mail, and delete
> this e-mail message, including any file(s), from your system. Any
> unauthorised review, use, disclosure or distribution is prohibited and may
> be unlawful. Further, while we scan all emails for known virus, we cannot
> guarantee that any email is virus-free. Before opening any attachment please
> check them for viruses and defects. Unless agreed otherwise, the Company
> (Nucleus Software Exports Limited or its subsidiaries or Group Companies)
> shall not be liable towards any unauthorized communication or its
> consequences.

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