in cxf/cxf-binding-nmr/src/main/java/org/apache/servicemix/cxf/binding/nmr/interceptors/NMRFaultOutInterceptor.java [48:81]
public void handleMessage(NMRMessage message) throws Fault {
message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
NSStack nsStack = new NSStack();
nsStack.push();
try {
XMLStreamWriter writer = getWriter(message);
Fault fault = getFault(message);
NMRFault jbiFault = NMRFault.createFault(fault);
nsStack.add(NMRConstants.NS_NMR_BINDING);
String prefix = nsStack.getPrefix(NMRConstants.NS_NMR_BINDING);
StaxUtils.writeStartElement(writer, prefix, NMRFault.NMR_FAULT_ROOT,
NMRConstants.NS_NMR_BINDING);
if (!jbiFault.hasDetails()) {
writer.writeEmptyElement("fault");
} else {
Element detail = jbiFault.getDetail();
NodeList details = detail.getChildNodes();
for (int i = 0; i < details.getLength(); i++) {
if (details.item(i) instanceof Element) {
StaxUtils.writeNode(details.item(i), writer, true);
break;
}
}
}
writer.writeEndElement();
writer.flush();
} catch (XMLStreamException xe) {
throw new Fault(new Message("XML_WRITE_EXC", BUNDLE), xe);
}
}