[
https://issues.apache.org/jira/browse/CXF-7577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16293251#comment-16293251
]
Daniel Kulp commented on CXF-7577:
----------------------------------
We would need a test case that shows this. That would also include hitting a
server that is based on CXF 3.1 or newer.
My gut feeling is the issue in the JBI based stuff or the old version of Jetty
or similar on the server side not understanding the attachments correctly and
throwing an exception/closing the stream prior to the client being able to send
the next chunk. In any case, without a test case, I would have no idea how
to proceed and this will be closed as not reproducible.
> 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: 2.4.10, 3.1.11
> Reporter: Jarry Shao
> Fix For: NeedMoreInfo
>
>
> *{color:#d04437}Client 3.1.11
> Server 2.4.4
> {color}*
> {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="<[email protected]>"; 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: <[email protected]>
> <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)