I’m not sure if anyone has ever tried MTOM with the Local transport.  In 
theory, it should work.  Not sure why it isn’t.   If you could create a small 
test case that shows the error, that would be interesting to look at.

Dan


On Jun 25, 2014, at 8:33 AM, Shriram <shri1984...@gmail.com> wrote:

> I am downloading a file by clicking a link. I am using jdk1.7, cxf-2.7.5 and
> enabled MTOM in both client and server. For UI i am using struts1.2. I got
> the below exception
> 
> [default-workqueue-8] ERROR consoleErrorLog - Exception in thread
> "default-workqueue-8" 
> [default-workqueue-8] ERROR consoleErrorLog - java.lang.OutOfMemoryError:
> Java heap space
> [default-workqueue-8] ERROR consoleErrorLog - 
> 
> [default-workqueue-6] WARN org.apache.cxf.phase.PhaseInterceptorChain -
> Interceptor for
> {http://com.java.test.task/}TestService#{http://api.services.test.task/
> }getTestFile has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Marshalling Error: Pipe closed
>    at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:258)
>    at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
>    at
> org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:114)
>    at
> org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
>    at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>    at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)
>    at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>    at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>    at
> org.apache.cxf.transport.local.LocalConduit$1$1.run(LocalConduit.java:143)
>    at
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428)
>    at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>    at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>    at
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353)
>    at java.lang.Thread.run(Thread.java:722)
> Caused by: javax.xml.bind.MarshalException
> - with linked exception:
> [java.io.IOException: Pipe closed]
>    at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328)
>    at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:251)
>    at
> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:95)
>    at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:539)
>    at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:233)
>    ... 13 more
> Caused by: java.io.IOException: Pipe closed
>    at
> java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:261)
>    at java.io.PipedInputStream.receive(PipedInputStream.java:227)
>    at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
>    at
> org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:51)
>    at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.flushBuffer(UTF8XmlOutput.java:418)
>    at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.text(UTF8XmlOutput.java:371)
>    at
> com.sun.xml.bind.v2.runtime.unmarshaller.Base64Data.writeTo(Base64Data.java:313)
>    at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.text(UTF8XmlOutput.java:312)
>    at
> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(XMLSerializer.java:356)
>    at
> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$PcdataImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:183)
>    at
> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.writeLeafElement(TransducedAccessor.java:256)
>    at
> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.serializeBody(SingleElementLeafProperty.java:130)
>    at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:361)
>    at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)
>    at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:156)
>    at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:131)
>    at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:333)
>    at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:340)
>    at
> com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:76)
>    at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
>    at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:323)
>    ... 17 more
> 
> Serverside code:
> 
> DataHandler theDataHandler =    new DataHandler(new FileDataSource(new
> File("filename"");
>            aResponse.setHeader("Pragma", "dummy");
>            aResponse.setHeader("Cache-Control", "private");
>            String contentType = "text/plain";
>            aResponse.setContentType(contentType);
>            aResponse.setHeader("Content-Disposition",
>                    "attachment; filename=\"" + name + ".txt\"");
> 
>            if (theDataHandler != null)
>            {
>                downloadFile(inputStream from datahandler, response
> OutputStream());
>            }
> 
> Using Datahandler to handle the download. i am getting null only for larger
> files. The exception occurs only for large files. I have commented out
> LoggingINInterceptor and LoggingOutInterceptor.
> 
> Note: I am using localtransport for publishing service. Please tell me MTOM
> feature is applicable to localtransport or not? If it is applicable why the
> code is not working ?
> 
> 
> 
> 
> --
> View this message in context: 
> http://cxf.547215.n5.nabble.com/RE-Outofmemory-error-in-datahandler-tp5745554.html
> Sent from the cxf-user mailing list archive at Nabble.com.

-- 
Daniel Kulp
dk...@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to