Actually, a likely root cause for this issue would be a leak in Xalan: https://www.google.com/webhp#safe=off&q=xalan+saxparser+threadlocal+leak
Andreas On Mon, Dec 7, 2015 at 2:02 PM, Andreas Veithen <[email protected]> wrote: > payloadCaching is actually a property defined by Spring-WS. Note that > even if it was Axiom's property, the fact that changing the property > triggers the issue wouldn't mean that it is Axiom's fault. > > Andreas > > On Mon, Dec 7, 2015 at 1:09 PM, Rohit Singh > <[email protected]> wrote: >> >> Dear Andreas, >> >> >> >> This issue is coming only when payload is true. If it is spring's issue then >> this should come when payload is false also. >> >> As far as I think payloadCache is axiom's property. >> >> >> >> I have now upgraded to 1.2.16. Issue with payloadCache=true is still coming. >> Only the name of the class is changed to CharacterDataImpl. >> >> >> >> Refer attached image for JVisualVM log. >> >> >> >> >> >> Rgrds,Rohit >> >> >> >> From: Andreas Veithen [mailto:[email protected]] >> Sent: Monday, December 07, 2015 6:14 PM >> To: Rohit Singh >> Cc: dev >> >> >> Subject: Re: OutOfMemory issue with Axiom >> >> >> >> This looks like a bug in Spring. I think it tries to be smart and cache a >> SAXParser or Transformer in a ThreadLocal for later reuse, but this may have >> the unexpected side effect of keeping the Axiom tree of the last message >> processed by each thread in memory. Can you try to figure out where that >> ThreadLocal is declared? >> >> >> >> Andreas >> >> >> >> On Mon, Dec 7, 2015 at 12:05 PM, Rohit Singh >> <[email protected]> wrote: >> >> Thanks Andreas, >> >> >> >> With payloadCaching=false, now NullPointer issue is resolved. >> >> But I want to run system with payloadCaching=true. >> >> But when I run with payloadCaching=true, my heap memory keep exausted after >> each hit(call) as mentioned in last mails also. >> >> Please refer below screenshot as you asked for strong references from the GC >> root >> >> to the OMTextImpl objects. >> >> This memory is not getting released. >> >> >> >> >> >> >> >> >> >> Rgrds,Rohit >> >> >> >> -----Original Message----- >> From: Andreas Veithen [mailto:[email protected]] >> Sent: Monday, December 07, 2015 1:39 PM >> To: dev >> Cc: Rohit Singh >> Subject: Re: OutOfMemory issue with Axiom >> >> >> >> I already responded when you sent that message the first time: >> >> >> >> http://markmail.org/message/qwucocinhjnm6n47 >> >> >> >> Please make sure that you can see replies posted to [email protected]. >> >> >> >> Andreas >> >> >> >> On Mon, Dec 7, 2015 at 6:20 AM, Rohit Singh >> <[email protected]> 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 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. >> >> > >> >> > >> >> > >> >> > 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.StaxSourc >> >> > e@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.j >> >> > ava:101) >> >> > ~[camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcess >> >> > or.java:59) >> >> > ~[camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryEr >> >> > rorHandler.java:398) >> >> > ~[camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHand >> >> > ler(TransactionErrorHandler.java:218) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionW >> >> > ithoutResult(TransactionErrorHandler.java:181) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.springframework.transaction.support.TransactionCallbackWithoutResu >> >> > lt.doInTransaction(TransactionCallbackWithoutResult.java:34) >> >> > [spring-tx-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.springframework.transaction.support.TransactionTemplate.execute(Tr >> >> > ansactionTemplate.java:133) >> >> > [spring-tx-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTem >> >> > plate(TransactionErrorHandler.java:174) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler.processInTransacti >> >> > on(TransactionErrorHandler.java:134) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler.process(Transactio >> >> > nErrorHandler.java:103) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.spring.spi.TransactionErrorHandler.process(Transactio >> >> > nErrorHandler.java:112) >> >> > [camel-spring-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.processor.CamelInternalProcessor.process(CamelInterna >> >> > lProcessor.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(CamelInterna >> >> > lProcessor.java:191) >> >> > [camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelpe >> >> > r.java:105) >> >> > [camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyn >> >> > cProcessor.java:87) >> >> > [camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.component.spring.ws.SpringWebserviceConsumer.invoke(S >> >> > pringWebserviceConsumer.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(MessageDispat >> >> > cher.java:233) >> >> > [spring-ws-core-2.1.4.RELEASE.jar:na] >> >> > >> >> > at >> >> > org.springframework.ws.server.MessageDispatcher.receive(MessageDispatc >> >> > her.java:173) >> >> > [spring-ws-core-2.1.4.RELEASE.jar:na] >> >> > >> >> > at >> >> > org.springframework.ws.transport.support.WebServiceMessageReceiverObje >> >> > ctSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java >> >> > :88) >> >> > [spring-ws-core-2.1.4.RELEASE.jar:na] >> >> > >> >> > at >> >> > org.springframework.ws.transport.http.WebServiceMessageReceiverHandler >> >> > Adapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59) >> >> > [spring-ws-core-2.1.4.RELEASE.jar:na] >> >> > >> >> > at >> >> > org.springframework.ws.transport.http.MessageDispatcherServlet.doServi >> >> > ce(MessageDispatcherServlet.java:292) >> >> > [spring-ws-core-2.1.4.RELEASE.jar:na] >> >> > >> >> > at >> >> > org.springframework.web.servlet.FrameworkServlet.processRequest(Framew >> >> > orkServlet.java:961) [spring-webmvc-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServl >> >> > et.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(FrameworkServ >> >> > let.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(Appli >> >> > cationFilterChain.java:305) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi >> >> > lterChain.java:210) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:20 >> >> > 2) >> >> > [javamelody-core-1.51.0.jar:1.51.0] >> >> > >> >> > at >> >> > net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:18 >> >> > 0) >> >> > [javamelody-core-1.51.0.jar:1.51.0] >> >> > >> >> > at >> >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli >> >> > cationFilterChain.java:243) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi >> >> > lterChain.java:210) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > com.github.ziplet.filter.compression.CompressingFilter.doFilter(Compre >> >> > ssingFilter.java:300) >> >> > [ziplet-2.0.0.jar:na] >> >> > >> >> > at >> >> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli >> >> > cationFilterChain.java:243) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi >> >> > lterChain.java:210) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa >> >> > lve.java:222) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa >> >> > lve.java:123) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticat >> >> > orBase.java:502) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja >> >> > va:171) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja >> >> > va:100) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:9 >> >> > 53) >> >> > [catalina.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValv >> >> > e.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(AbstractHttp1 >> >> > 1Processor.java:1044) >> >> > [tomcat-coyote.jar:7.0.50] >> >> > >> >> > at >> >> > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(A >> >> > bstractProtocol.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(ThreadPoolExecu >> >> > tor.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.mandatoryCon >> >> > vertTo(BaseTypeConverterRegistry.java:173) >> >> > ~[camel-core-2.12.3.jar:2.12.3] >> >> > >> >> > at >> >> > org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.j >> >> > ava: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(ObjectHel >> >> > per.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.mandatoryCon >> >> > vertTo(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.j >> >> > ava:965) >> >> > ~[axiom-impl-1.2.14.jar:1.2.14] >> >> > >> >> > at >> >> > javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.j >> >> > ava:60) >> >> > ~[na:1.6.0_31] >> >> > >> >> > at >> >> > org.springframework.util.xml.StaxStreamXMLReader.parseInternal(StaxStr >> >> > eamXMLReader.java:123) ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.springframework.util.xml.AbstractStaxXMLReader.parse(AbstractStaxX >> >> > MLReader.java:155) ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.springframework.util.xml.AbstractStaxXMLReader.parse(AbstractStaxX >> >> > MLReader.java:139) ~[spring-core-4.0.2.RELEASE.jar:4.0.2.RELEASE] >> >> > >> >> > at >> >> > org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfo >> >> > rmerIdentityImpl.java:485) >> >> > ~[xalan-2.7.1.jar:na] >> >> > >> >> > at >> >> > com.nucleus.integration.core.camel.converter.XmlConverter.sourceToInpu >> >> > tStream(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.j >> >> > ava:39) >> >> > ~[na:1.6.0_31] >> >> > >> >> > at >> >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess >> >> > orImpl.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 >> >> > >> >> > >> >> > >> >> > 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. >> >> >> >> ________________________________ >> >> 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. >> >> >> >> >> ________________________________ >> 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: [email protected] For additional commands, e-mail: [email protected]
