[
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="<[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)
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="<[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'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="<[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)