[
https://issues.apache.org/jira/browse/CXF-2602?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
aaron pieper closed CXF-2602.
-----------------------------
Resolution: Not A Problem
Thanks, Daniel - moving the LoggingOutInterceptor earlier in the chain fixed
the disparity. After moving the LoggingOutInterceptor ahead of everything else
in the pre-stream, I was unable to duplicate the bug. As such, I'm marking the
bug as "Not a problem".
As far as the bug in Soap11FaultOutInterceptorInternal, I'll look around to see
if a bug report has been filed.
> LoggingOutInterceptor does not always log the same SOAP envelope which is
> returned from the service
> ---------------------------------------------------------------------------------------------------
>
> Key: CXF-2602
> URL: https://issues.apache.org/jira/browse/CXF-2602
> Project: CXF
> Issue Type: Improvement
> Components: Core
> Affects Versions: 2.2.2
> Reporter: aaron pieper
> Priority: Minor
>
> I encountered a bug in my software, which was difficult to track down because
> the LoggingOutInterceptor was not logging the SOAP envelope correctly.
> Because the LoggingOutInterceptor is placed before several other CXF
> components in the interceptor chain, it is possible for the logged SOAP
> envelope to be different from what actually gets sent out.
> More specifically, my phase interceptor chain looked like this:
> --------------------
> pre-stream [(snip), LoggingOutInterceptor, StaxOutInterceptor]
> pre-protocol [WebFaultOutInterceptor, SOAPHandlerFaultOutInterceptor]
> write [SoapOutInterceptor]
> pre-marshal [LogicalHandlerFaultOutInterceptor]
> marshal [Soap11FaultOutInterceptorInternal]
> post-marshal (snip)
> --------------------
> There was a bug in the Soap11FaultOutInterceptorInternal, which was stripping
> certain namespaces from the response; so that the returned Soap Envelope
> looked like this:
> --------------------
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <ns1:Fault
> xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> <faultcode>ns2:Receiver</faultcode>
> --------------------
> However, because the bug happened after the LoggingOutInterceptor, the
> LoggingOutInterceptor logged a different Soap Envelope:
> --------------------
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <ns1:Fault
> xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/">
> <faultcode
> xmlns:ns2="http://www.w3.org/2003/05/soap-envelope">ns2:Receiver</faultcode>
> --------------------
> So according to the LoggingOutInterceptor, we sending out valid XML - but in
> fact, we were sending out invalid XML, since the "ns2" namespace in our
> faultcode was being omitted.
> I think the LoggingOutInterceptor should be as late in the phase interceptor
> chain as possible, so that it would always log what we're sending back to the
> user (minus any encryption.) It seems like this will require a rearchitecting
> of the LoggingOutInterceptor (and possibly some other components as well.)
> Hopefully these kinds of problems will be rare, so this disparity won't come
> up often - so i think this is a low priority, but it would still be nice.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.