Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
3.2.7
-
None
-
None
-
Java 8
Complete OutInterceptorChain:
setup [PolicyOutInterceptor] pre-logical [HolderOutInterceptor, SwAOutInterceptor, WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor] post-logical [SoapPreProtocolOutInterceptor] prepare-send [MessageSenderInterceptor] pre-stream [SoapLoggingOutHandler, StaxOutInterceptor, XSLTOutInterceptor, AttachmentOutInterceptor] write [SoapOutInterceptor] marshal [WrappedOutInterceptor, ExceptionInterceptor, BareOutInterceptor] write-ending [SoapOutEndingInterceptor] pre-stream-ending [StaxOutEndingInterceptor] prepare-send-ending [MessageSenderEndingInterceptor]
Complete FaultOutInterceptorChain:
setup [ServerPolicyOutFaultInterceptor] pre-logical [SoapHeaderOutFilterInterceptor] prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor] pre-stream [SoapLoggingOutHandler, AttachmentOutInterceptor, StaxOutInterceptor] pre-protocol [WebFaultOutInterceptor] write [SoapOutInterceptor] marshal [Soap11FaultOutInterceptorInternal] write-ending [SoapOutEndingInterceptor] prepare-send-ending [MessageSenderEndingInterceptor]
Java 8 Complete OutInterceptorChain: setup [PolicyOutInterceptor] pre-logical [HolderOutInterceptor, SwAOutInterceptor, WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor] post-logical [SoapPreProtocolOutInterceptor] prepare-send [MessageSenderInterceptor] pre-stream [SoapLoggingOutHandler, StaxOutInterceptor, XSLTOutInterceptor, AttachmentOutInterceptor] write [SoapOutInterceptor] marshal [WrappedOutInterceptor, ExceptionInterceptor, BareOutInterceptor] write-ending [SoapOutEndingInterceptor] pre-stream-ending [StaxOutEndingInterceptor] prepare-send-ending [MessageSenderEndingInterceptor] Complete FaultOutInterceptorChain: setup [ServerPolicyOutFaultInterceptor] pre-logical [SoapHeaderOutFilterInterceptor] prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor] pre-stream [SoapLoggingOutHandler, AttachmentOutInterceptor, StaxOutInterceptor] pre-protocol [WebFaultOutInterceptor] write [SoapOutInterceptor] marshal [Soap11FaultOutInterceptorInternal] write-ending [SoapOutEndingInterceptor] prepare-send-ending [MessageSenderEndingInterceptor]
-
Unknown
Description
My OutInterceptorChain looks like this:
... pre-stream [SoapLoggingOutHandler, StaxOutInterceptor, XSLTOutInterceptor, AttachmentOutInterceptor] ... marshal [WrappedOutInterceptor, ExceptionInterceptor, BareOutInterceptor] ... pre-stream-ending [StaxOutEndingInterceptor] ...
I'm using an XSLTOutInterceptor for XSLT transformations, which is called after the StaxOutInterceptor, so the XSLTOutInterceptor can use the XMLStreamWriter, provided by the StaxOutInterceptor.
Additionally, the StaxOutInterceptor puts the StaxOutEndingInterceptor into the interceptor chain.
This works fine if no interceptor throws an Exception in the handleMessage() method.
In my scenario, the ExceptionInterceptor (in phase marshal) throws a RuntimeException. My FaultOutInterceptorChain looks than like this:
... pre-stream [SoapLoggingOutHandler, AttachmentOutInterceptor, StaxOutInterceptor] ... pre-stream-ending [] ...
The StaxOutEndingInterceptor is missing here which leads to an empty response because the StaxOutEndingInterceptor has to close the XMLStreamWriter.
My current workaround is to invoke the XSLTOutInterceptor before the StaxOutInterceptor, so the XSLTOutInterceptor will use the OutputStream instead of the XMLStreamWriter.
The complete interceptor chains are described in the "Environment" field.