[ https://issues.apache.org/jira/browse/CXF-7577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jarry Shao updated CXF-7577: ---------------------------- Description: {color:red}Here is the tcpdump:{color} Accept: */* User-Agent: Apache CXF 3.1.11 SOAPAction: "*******" Transfer-Encoding: chunked Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:5697c391-f4ff-41b0-8674-d92b30fac633"; start="<root.mess...@cxf.apache.org>"; start-info="text/xml" Connection: Keep-Alive 3e13 --uuid:5697c391-f4ff-41b0-8674-d92b30fac633 Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" Content-Transfer-Encoding: binary Content-ID: <root.mess...@cxf.apache.org> <soap:Envelope xmlns:soap=********** {color:red}/** * The Content **/{color} +...'..b).>.....h...K.Xx..c1V,....[.X.$..b....XxrM+..v......V..B.s...........}.2..j....)a..+.P.h_..5..u.P.._n.....B...X.3...<V,..,V,.....7.c...c.X.-......b.F+V,<.JNk....gM.Xx.k....Z...3Z....Z... .Xx.H+......'..b.I<....Ih..[..O.r.;Z.s..sWZ.F..w.X..2wb....X.psgE......"C..]B.jv...Psi.7.Z.]~.......[.t.]gyg.X..9%V.....c...r.Xx......H.S+.... {color:#14892c}HTTP/1.1 400 Bad Request Date: Sun, 03 Dec 2017 06:26:04 GMT Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> </body></html> {color} As you can see, there's a 400 Bad Request occurred. But The Client didn't receive the Response as a SOAP Fault. It seems that it had ignored it. And that's my client Properties: httpClientPolicy.setConnectionTimeout(40000); httpClientPolicy.setAllowChunking(true); httpClientPolicy.setAsyncExecuteTimeout(80000); httpClientPolicy.setAsyncExecuteTimeoutRejection(true); httpClientPolicy.setReceiveTimeout(60000); Here is the Server Stack Trace: has thrown exception, unwinding now java.lang.RuntimeException: org.eclipse.jetty.io.EofException at org.apache.cxf.attachment.LazyAttachmentCollection.loadAll(LazyAttachmentCollection.java:58) at org.apache.cxf.attachment.LazyAttachmentCollection.size(LazyAttachmentCollection.java:120) at org.apache.servicemix.cxfbc.interceptors.JbiOperationInterceptor.loadAttachments(JbiOperationInterceptor.java:102) at org.apache.servicemix.cxfbc.interceptors.JbiOperationInterceptor.handleMessage(JbiOperationInterceptor.java:48) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:754) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:319) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:287) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:936) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:873) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:346) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:581) at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1057) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:899) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:526) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:41) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528) at java.lang.Thread.run(Thread.java:748) Caused by: org.eclipse.jetty.io.EofException at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:321) at org.eclipse.jetty.http.HttpParser.blockForContent(HttpParser.java:1148) at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:57) at java.io.FilterInputStream.read(FilterInputStream.java:133) at java.io.FilterInputStream.read(FilterInputStream.java:133) at java.io.PushbackInputStream.read(PushbackInputStream.java:186) at org.apache.cxf.attachment.MimeBodyPartInputStream.read(MimeBodyPartInputStream.java:79) at java.io.InputStream.read(InputStream.java:101) at org.apache.cxf.attachment.DelegatingInputStream.read(DelegatingInputStream.java:89) at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:143) at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:103) at org.apache.cxf.attachment.AttachmentDataSource.cache(AttachmentDataSource.java:49) at org.apache.cxf.attachment.AttachmentDeserializer.cacheStreamedAttachments(AttachmentDeserializer.java:240) at org.apache.cxf.attachment.AttachmentDeserializer.readNext(AttachmentDeserializer.java:204) at org.apache.cxf.attachment.LazyAttachmentCollection.loadAll(LazyAttachmentCollection.java:55) was: {color:red}Here is the tcpdump:{color} Accept: */* User-Agent: Apache CXF 3.1.11 SOAPAction: "*******" Transfer-Encoding: chunked Content-Type: multipart/related; type="application/xop+xml"; boundary="uuid:5697c391-f4ff-41b0-8674-d92b30fac633"; start="<root.mess...@cxf.apache.org>"; start-info="text/xml" Connection: Keep-Alive 3e13 --uuid:5697c391-f4ff-41b0-8674-d92b30fac633 Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" Content-Transfer-Encoding: binary Content-ID: <root.mess...@cxf.apache.org> <soap:Envelope xmlns:soap=********** {color:red}/** * The Content **/{color} +...'..b).>.....h...K.Xx..c1V,....[.X.$..b....XxrM+..v......V..B.s...........}.2..j....)a..+.P.h_..5..u.P.._n.....B...X.3...<V,..,V,.....7.c...c.X.-......b.F+V,<.JNk....gM.Xx.k....Z...3Z....Z... .Xx.H+......'..b.I<....Ih..[..O.r.;Z.s..sWZ.F..w.X..2wb....X.psgE......"C..]B.jv...Psi.7.Z.]~.......[.t.]gyg.X..9%V.....c...r.Xx......H.S+.... {color:#14892c}HTTP/1.1 400 Bad Request Date: Sun, 03 Dec 2017 06:26:04 GMT Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> </body></html> {color} As you can see, there're some missings for the SOAP message. The Attachment hadn't finished packageing for the SOAP message, even didn't have a boundary at the end of the message. So, what's the problem? It's weird and strange.... Did it a Bug ? And that's my client Properties: httpClientPolicy.setConnectionTimeout(40000); httpClientPolicy.setAllowChunking(true); httpClientPolicy.setAsyncExecuteTimeout(80000); httpClientPolicy.setAsyncExecuteTimeoutRejection(true); httpClientPolicy.setReceiveTimeout(60000); Summary: CXF [Async Client] Client didn't received the Http Status Code:400 as a SOAP Fault. (was: CXF [Async Client] Didn't finished to package the SOAP Message.) > CXF [Async Client] Client didn't received the Http Status Code:400 as a SOAP > Fault. > ----------------------------------------------------------------------------------- > > Key: CXF-7577 > URL: https://issues.apache.org/jira/browse/CXF-7577 > Project: CXF > Issue Type: Bug > Components: Transports > Affects Versions: 3.1.11 > Reporter: Jarry Shao > > {color:red}Here is the tcpdump:{color} > Accept: */* > User-Agent: Apache CXF 3.1.11 > SOAPAction: "*******" > Transfer-Encoding: chunked > Content-Type: multipart/related; type="application/xop+xml"; > boundary="uuid:5697c391-f4ff-41b0-8674-d92b30fac633"; > start="<root.mess...@cxf.apache.org>"; start-info="text/xml" > Connection: Keep-Alive > 3e13 > --uuid:5697c391-f4ff-41b0-8674-d92b30fac633 > Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" > Content-Transfer-Encoding: binary > Content-ID: <root.mess...@cxf.apache.org> > <soap:Envelope xmlns:soap=********** > {color:red}/** > * The Content > **/{color} > +...'..b).>.....h...K.Xx..c1V,....[.X.$..b....XxrM+..v......V..B.s...........}.2..j....)a..+.P.h_..5..u.P.._n.....B...X.3...<V,..,V,.....7.c...c.X.-......b.F+V,<.JNk....gM.Xx.k....Z...3Z....Z... > .Xx.H+......'..b.I<....Ih..[..O.r.;Z.s..sWZ.F..w.X..2wb....X.psgE......"C..]B.jv...Psi.7.Z.]~.......[.t.]gyg.X..9%V.....c...r.Xx......H.S+.... > {color:#14892c}HTTP/1.1 400 Bad Request > Date: Sun, 03 Dec 2017 06:26:04 GMT > Content-Length: 226 > Connection: close > Content-Type: text/html; charset=iso-8859-1 > <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> > <html><head> > <title>400 Bad Request</title> > </head><body> > <h1>Bad Request</h1> > <p>Your browser sent a request that this server could not understand.<br /> > </p> > </body></html> > {color} > As you can see, there's a 400 Bad Request occurred. > But The Client didn't receive the Response as a SOAP Fault. > It seems that it had ignored it. > And that's my client Properties: > httpClientPolicy.setConnectionTimeout(40000); > httpClientPolicy.setAllowChunking(true); > httpClientPolicy.setAsyncExecuteTimeout(80000); > httpClientPolicy.setAsyncExecuteTimeoutRejection(true); > httpClientPolicy.setReceiveTimeout(60000); > Here is the Server Stack Trace: > has thrown exception, unwinding now > java.lang.RuntimeException: org.eclipse.jetty.io.EofException > at > org.apache.cxf.attachment.LazyAttachmentCollection.loadAll(LazyAttachmentCollection.java:58) > at > org.apache.cxf.attachment.LazyAttachmentCollection.size(LazyAttachmentCollection.java:120) > at > org.apache.servicemix.cxfbc.interceptors.JbiOperationInterceptor.loadAttachments(JbiOperationInterceptor.java:102) > at > org.apache.servicemix.cxfbc.interceptors.JbiOperationInterceptor.handleMessage(JbiOperationInterceptor.java:48) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) > at > org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:754) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:319) > at > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:287) > at > org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:936) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:873) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > at org.eclipse.jetty.server.Server.handle(Server.java:346) > at > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:581) > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1057) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:899) > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220) > at > org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:526) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:41) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528) > at java.lang.Thread.run(Thread.java:748) > Caused by: org.eclipse.jetty.io.EofException > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:321) > at > org.eclipse.jetty.http.HttpParser.blockForContent(HttpParser.java:1148) > at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:57) > at java.io.FilterInputStream.read(FilterInputStream.java:133) > at java.io.FilterInputStream.read(FilterInputStream.java:133) > at java.io.PushbackInputStream.read(PushbackInputStream.java:186) > at > org.apache.cxf.attachment.MimeBodyPartInputStream.read(MimeBodyPartInputStream.java:79) > at java.io.InputStream.read(InputStream.java:101) > at > org.apache.cxf.attachment.DelegatingInputStream.read(DelegatingInputStream.java:89) > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:143) > at org.apache.cxf.helpers.IOUtils.copy(IOUtils.java:103) > at > org.apache.cxf.attachment.AttachmentDataSource.cache(AttachmentDataSource.java:49) > at > org.apache.cxf.attachment.AttachmentDeserializer.cacheStreamedAttachments(AttachmentDeserializer.java:240) > at > org.apache.cxf.attachment.AttachmentDeserializer.readNext(AttachmentDeserializer.java:204) > at > org.apache.cxf.attachment.LazyAttachmentCollection.loadAll(LazyAttachmentCollection.java:55) -- This message was sent by Atlassian JIRA (v6.4.14#64029)