It SOUNDS like a bug, probably an interceptor ordering issue.   Is there any 
way you could create a small test case and log a bug?

Dan


On Wed September 16 2009 9:59:12 am Виталий Литвак wrote:
> Hi.
> 
> We were using CXF 2.0.10 in our application and now decided to use GZIP
> compression for messages. So we've upgraded to CXF 2.2.3. After solving
>  some migration problems we are finally available to use all our stuff
>  without GZIP compression. But if we turn it on (by adding GZIPFeature to
> ServerFactoryBean and ClientFactoryBean) then attachments are not being
>  read throwing following exception:
> 
> On client:
> 
> java.io.IOException: stream is closed
>     at
> sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:151)
>     at
>  sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:646) at
>  java.io.FilterInputStream.read(FilterInputStream.java:116)
>     at
> sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLCon
> nection.java:2446) at
>  java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:221) at
>  java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141) at
>  java.util.zip.GZIPInputStream.read(GZIPInputStream.java:92) at
>  java.util.zip.InflaterInputStream.read(InflaterInputStream.java:105) at
>  java.io.FilterInputStream.read(FilterInputStream.java:66)
>     at java.io.PushbackInputStream.read(PushbackInputStream.java:122)
>     at
> org.apache.cxf.attachment.MimeBodyPartInputStream.read(MimeBodyPartInputStr
> eam.java:192) at
> org.apache.cxf.attachment.DelegatingInputStream.read(DelegatingInputStream.
> java:57) at
> com.fundcount.fcoffice.gui.CGlobalData.backupDatabase(CGlobalData.java:2427
> )
> 
> On server:
> 
> 2009-09-16 17:30:41,187 ERROR: Sep 16, 2009 5:30:41 PM
> org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> WARNING: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not write attachments.
>     at
> org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInte
> rceptor.handleMessage(AttachmentOutInterceptor.java:82) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:236) at
> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingC
> hainInterceptor.java:74) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:236) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationO
> bserver.java:104) at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(Jet
> tyHTTPDestination.java:302) at
> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTT
> PDestination.java:266) at
> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandle
> r.java:70) at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
>     at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCol
> lection.java:230) at
>  org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49) at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>     at org.mortbay.jetty.Server.handle(Server.java:324)
>     at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>     at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java
> :879) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:741) at
>  org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213) at
>  org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403) at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409
> ) at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:52
> 2) Caused by: org.mortbay.jetty.EofException
>     at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:787)
>     at
> org.mortbay.jetty.AbstractGenerator$Output.flush(AbstractGenerator.java:566
> ) at
> org.mortbay.jetty.HttpConnection$Output.flush(HttpConnection.java:946)
>     at
> org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:646
> ) at
> org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:577
> ) at
> org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputSt
> ream.java:46) at
> java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:161)
>     at
> java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:118)
>     at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:72)
>     at
> org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputSt
> ream.java:46) at
> org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutp
> utStream.java:69) at
>  javax.activation.DataHandler.writeTo(DataHandler.java:294)
>     at
> org.apache.cxf.attachment.AttachmentSerializer.writeAttachments(AttachmentS
> erializer.java:153) at
> org.apache.cxf.interceptor.AttachmentOutInterceptor$AttachmentOutEndingInte
> rceptor.handleMessage(AttachmentOutInterceptor.java:80) ... 19 more
> Caused by: java.io.IOException: Broken pipe
>     at sun.nio.ch.FileDispatcher.write0(Native Method)
>     at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
>     at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
>     at sun.nio.ch.IOUtil.write(IOUtil.java:60)
>     at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
>     at org.mortbay.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:169)
>     at
> org.mortbay.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:2
> 21) at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:721) ... 32
>  more
> 
> We use simple frontend for our web services. Attachments are supposed to be
> loaded as a response from web-method, which is java-first designed method
> returning DataHandler object with AttachmentDataSource in it.
> 
> Need some ideas. Are we doing something wrong or it is a bug in CXF and
>  MTOM attachments simply does not work with gzip compression?
> 

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to