[SMX4-1513]add type check to avoid CCE in cxf nmr transport
git-svn-id: https://svn.apache.org/repos/asf/servicemix/smx4/features/trunk@1513057 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java b/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java
index 1a22b5f..e1223a4 100644
--- a/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java
+++ b/cxf/cxf-transport-nmr/src/main/java/org/apache/servicemix/cxf/transport/nmr/NMRDestinationOutputStream.java
@@ -83,9 +83,14 @@
Exchange xchng = inMessage.get(Exchange.class);
LOG.fine(new org.apache.cxf.common.i18n.Message("CREATE.NORMALIZED.MESSAGE", LOG).toString());
if (inMessage.getExchange().getOutFaultMessage() != null) {
- org.apache.cxf.interceptor.Fault f = (org.apache.cxf.interceptor.Fault) inMessage.getContent(Exception.class);
- if (!f.hasDetails()) {
- xchng.setError(f);
+ Exception ex = inMessage.getContent(Exception.class);
+ if (ex instanceof org.apache.cxf.interceptor.Fault) {
+ org.apache.cxf.interceptor.Fault f = (org.apache.cxf.interceptor.Fault) inMessage.getContent(Exception.class);
+ if (!f.hasDetails()) {
+ xchng.setError(f);
+ }
+ } else {
+ xchng.setError(ex);
}
// As the fault is already marshalled by the fault handler
xchng.getFault().setBody(ss);