Author: gnodet
Date: Thu Sep 25 05:42:07 2008
New Revision: 698948
URL: http://svn.apache.org/viewvc?rev=698948&view=rev
Log:
SM-1589: Class JbiExchange setting fault, but message is not a fault
Added:
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutFaultTest.java
- copied, changed from r698940,
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java
Modified:
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/CamelProviderEndpoint.java
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiExchange.java
Modified:
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/CamelProviderEndpoint.java
URL:
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/CamelProviderEndpoint.java?rev=698948&r1=698947&r2=698948&view=diff
==============================================================================
---
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/CamelProviderEndpoint.java
(original)
+++
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/CamelProviderEndpoint.java
Thu Sep 25 05:42:07 2008
@@ -92,7 +92,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) {
@@ -112,7 +113,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/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiExchange.java
URL:
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiExchange.java?rev=698948&r1=698947&r2=698948&view=diff
==============================================================================
---
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiExchange.java
(original)
+++
servicemix/components/engines/servicemix-camel/trunk/src/main/java/org/apache/servicemix/camel/JbiExchange.java
Thu Sep 25 05:42:07 2008
@@ -20,6 +20,7 @@
import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.NormalizedMessage;
+import javax.jbi.messaging.Fault;
import org.apache.camel.CamelContext;
import org.apache.camel.ExchangePattern;
@@ -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) {
Copied:
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutFaultTest.java
(from r698940,
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java)
URL:
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutFaultTest.java?p2=servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutFaultTest.java&p1=servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java&r1=698940&r2=698948&rev=698948&view=diff
==============================================================================
---
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutTest.java
(original)
+++
servicemix/components/engines/servicemix-camel/trunk/src/test/java/org/apache/servicemix/camel/JbiInOutFaultTest.java
Thu Sep 25 05:42:07 2008
@@ -17,15 +17,20 @@
package org.apache.servicemix.camel;
import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.NormalizedMessage;
+import javax.jbi.messaging.MessagingException;
+import javax.jbi.messaging.Fault;
import javax.jbi.servicedesc.ServiceEndpoint;
import javax.xml.namespace.QName;
import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.jbi.FaultException;
+import org.apache.camel.converter.jaxp.StringSource;
/**
* @version $Revision: 1.1 $
*/
-public class JbiInOutTest extends
+public class JbiInOutFaultTest extends
NonJbiCamelEndpointsIntegrationTest {
/*
* @see TestCase#setUp()
@@ -35,7 +40,13 @@
suName = "su5";
super.setUp();
- MyEchoComponent echo = new MyEchoComponent();
+ MyEchoComponent echo = new MyEchoComponent() {
+ protected boolean transform(MessageExchange exchange,
NormalizedMessage in, NormalizedMessage out) throws MessagingException {
+ Fault f = exchange.createFault();
+ f.setContent(new StringSource("<fault/>"));
+ throw new FaultException("Error", exchange, f);
+ }
+ };
echo.setService(new QName("namespace", "echo"));
echo.setEndpoint("endpoint");
container.activateComponent(echo, "echo");
@@ -52,8 +63,8 @@
@Override
protected void checkResult(MessageExchange exchange) {
- assertNotNull(exchange.getMessage("out"));
- assertNotNull(exchange.getMessage("out").getContent());
+ assertNotNull(exchange.getMessage("fault"));
+ assertNotNull(exchange.getMessage("fault").getContent());
}
-}
+}
\ No newline at end of file