[
https://issues.apache.org/jira/browse/CXF-9091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17911372#comment-17911372
]
Manuel Shenavai commented on CXF-9091:
--------------------------------------
Hi [~ffang], just to emphasize my previous comment:
You can see that in the old codeline there was a interceptor
(PolicyBasedWSS4JInInterceptor) reading the payload before any response code
was returned. The old codeline would not return HTTP 202 before reading the
complete payload.
In my test I send a invalid XML to the endpoint. In old codeline, the response
is 500 while in the new codeline the broken payload is accepted and HTTP 202 is
returned.
So I think a potential fix would require to read the complete payload before
returning HTTP 202.
Best regards,
Manuel
Daemon Thread [https-jsse-nio-8041-exec-18]
org.apache.cxf.binding.soap.saaj.SAAJInInterceptor.handleMessage(SAAJInInterceptor.java:262)
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getSOAPMessage(WSS4JInInterceptor.java:167)
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:234)
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:200)
org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:80)
org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:67)
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)...
> Camel 3|CXF: ParsingErrors with OneWay Messages
> -----------------------------------------------
>
> Key: CXF-9091
> URL: https://issues.apache.org/jira/browse/CXF-9091
> Project: CXF
> Issue Type: Bug
> Reporter: Manuel Shenavai
> Priority: Major
>
> Hi everyone,
> we recently moved from Camel 2 to Camel 3 and we are now observing the
> following problem with CXF. If a OneWay message exceeds a certain length, the
> messages fail with a parser error like:
> Caused by: java.lang.IllegalStateException: Current event not START_ELEMENT
> or END_ELEMENT
> at
> com.ctc.wstx.sr.BasicStreamReader.getNamespaceCount(BasicStreamReader.java:805)
> ~[woodstox-core-6.2.7.jar:6.2.7]
> at
> org.apache.cxf.staxutils.DepthXMLStreamReader.getNamespaceCount(DepthXMLStreamReader.java:122)
> ~[cxf-core-3.5.2.jar:3.5.2]
> at
> org.apache.cxf.staxutils.DepthXMLStreamReader.getNamespaceCount(DepthXMLStreamReader.java:122)
> ~[cxf-core-3.5.2.jar:3.5.2]
> at
> org.apache.camel.component.cxf.converter.DelegatingXMLStreamReader.<init>(DelegatingXMLStreamReader.java:40)
> ~[camel-cxf-3.17.0.jar:3.17.0]
> at
> org.apache.camel.component.cxf.converter.CxfPayloadConverter.convertTo(CxfPayloadConverter.java:225)
> ~[camel-cxf-3.17.0.jar:3.17.0]
> at
> org.apache.camel.component.cxf.converter.CxfPayloadConverterLoader.lambda$registerFallbackConverters$8(CxfPayloadConverterLoader.java:68)
> ~[camel-cxf-3.17.0.jar:3.17.0]
> at
> org.apache.camel.support.SimpleTypeConverter.convertTo(SimpleTypeConverter.java:101)
> ~[camel-support-3.17.0.jar:3.17.0]
> ... 30 common frames omitted
> The error will not happen if we reduce the length of the message or if we
> change it from OneWay to ResponseReply. This indicates a problem in the async
> decoupling of the request.
> During debugging I found that the HTTP thread is used to handle the request.
> But the actual processing of the message happens in new thread. Maybe the
> input stream is closed after the http thread is finished (HTTP 202) and the
> spawned thread cannot read the full content anymore.
> I created the following reproducer based on Spring Boot:
> [https://github.com/mash-sap/cxfOneWayError/tree/main]
> CXF: 3.6.5
> Camel CXF: 3.17.0
> Tomcat: 9.0.83
> Mailinglist Post:
> https://lists.apache.org/thread/vproojr7pcygpjtrygfxj8qcgj1x2q4x
--
This message was sent by Atlassian Jira
(v8.20.10#820010)