public void handleMessage(X message) throws Fault {
W3CDOMStreamWriter domWriter = (W3CDOMStreamWriter)message.getContent(XMLStreamWriter.class);
XMLStreamWriter origWriter = (XMLStreamWriter)message
.get(LogicalHandlerFaultOutInterceptor.ORIGINAL_WRITER);
HandlerChainInvoker invoker = getInvoker(message);
LogicalMessageContextImpl lctx = new LogicalMessageContextImpl(message);
invoker.setLogicalMessageContext(lctx);
boolean requestor = isRequestor(message);
XMLStreamReader reader = (XMLStreamReader)message.get("LogicalHandlerInterceptor.INREADER");
SOAPMessage origMessage = null;
if (reader != null) {
origMessage = message.getContent(SOAPMessage.class);
message.setContent(XMLStreamReader.class, reader);
message.removeContent(SOAPMessage.class);
} else if (domWriter.getDocument().getDocumentElement() != null) {
Source source = new DOMSource(domWriter.getDocument());
message.setContent(Source.class, source);
message.setContent(Node.class, domWriter.getDocument());
message.setContent(XMLStreamReader.class,
StaxUtils.createXMLStreamReader(domWriter.getDocument()));
}
try {
if (!invoker.invokeLogicalHandlersHandleFault(requestor, lctx)) {
// handleAbort(message, context);
}
} catch (RuntimeException exception) {
Exchange exchange = message.getExchange();