Author: gnodet
Date: Thu Sep 25 05:58:19 2008
New Revision: 698952

URL: http://svn.apache.org/viewvc?rev=698952&view=rev
Log:
SM-1589: Class JbiExchange setting fault, but message is not a fault

Modified:
    
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/CamelJbiEndpoint.java
    
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java

Modified: 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/CamelJbiEndpoint.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/CamelJbiEndpoint.java?rev=698952&r1=698951&r2=698952&view=diff
==============================================================================
--- 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/CamelJbiEndpoint.java
 (original)
+++ 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/CamelJbiEndpoint.java
 Thu Sep 25 05:58:19 2008
@@ -91,7 +91,8 @@
                 }
                 JbiExchange camelExchange = new 
JbiExchange(camelEndpoint.getCamelContext(), binding, exchange);
                 camelProcessor.process(camelExchange);
-                if (camelExchange.isFailed()) {
+                if (camelExchange.isFailed()
+                        && (camelExchange.getFault(false) == null || 
camelExchange.getFault(false).getBody() == null)) {
                     Throwable t = camelExchange.getException();
                     Exception e;
                     if (t == null) {
@@ -111,7 +112,8 @@
                 }
                 JbiExchange camelExchange = new 
JbiExchange(camelEndpoint.getCamelContext(), binding, exchange);
                 camelProcessor.process(camelExchange);
-                if (camelExchange.isFailed()) {
+                if (camelExchange.isFailed()
+                        && (camelExchange.getFault(false) == null || 
camelExchange.getFault(false).getBody() == null)) {
                     Throwable t = camelExchange.getException();
                     Exception e;
                     if (t == null) {

Modified: 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java
URL: 
http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java?rev=698952&r1=698951&r2=698952&view=diff
==============================================================================
--- 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java
 (original)
+++ 
servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiExchange.java
 Thu Sep 25 05:58:19 2008
@@ -17,6 +17,7 @@
 package org.apache.servicemix.camel;
 
 import javax.jbi.JBIException;
+import javax.jbi.messaging.Fault;
 import javax.jbi.messaging.InOnly;
 import javax.jbi.messaging.MessageExchange;
 import javax.jbi.messaging.NormalizedMessage;
@@ -159,8 +160,14 @@
             try {
                 NormalizedMessage msg = messageExchange.getMessage(name);
                 if (msg == null) {
-                    msg = messageExchange.createMessage();
-                    messageExchange.setMessage(msg, name);
+                    if ("fault".equals(name)) {
+                        Fault f = messageExchange.createFault();
+                        messageExchange.setFault(f);
+                        msg = f;
+                    } else {
+                        msg = messageExchange.createMessage();
+                        messageExchange.setMessage(msg, name);
+                    }
                 }
                 return new JbiMessage(msg);
             } catch (JBIException e) {


Reply via email to