Author: ffang
Date: Thu Dec 16 03:25:05 2010
New Revision: 1049775
URL: http://svn.apache.org/viewvc?rev=1049775&view=rev
Log:
[SMX4-711]check Exception from Camel Exchange at very first place to honor asyn
processor in camel 2.5
Modified:
servicemix/smx4/features/trunk/camel/servicemix-camel/src/main/java/org/apache/servicemix/camel/nmr/ServiceMixConsumer.java
Modified:
servicemix/smx4/features/trunk/camel/servicemix-camel/src/main/java/org/apache/servicemix/camel/nmr/ServiceMixConsumer.java
URL:
http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/main/java/org/apache/servicemix/camel/nmr/ServiceMixConsumer.java?rev=1049775&r1=1049774&r2=1049775&view=diff
==============================================================================
---
servicemix/smx4/features/trunk/camel/servicemix-camel/src/main/java/org/apache/servicemix/camel/nmr/ServiceMixConsumer.java
(original)
+++
servicemix/smx4/features/trunk/camel/servicemix-camel/src/main/java/org/apache/servicemix/camel/nmr/ServiceMixConsumer.java
Thu Dec 16 03:25:05 2010
@@ -96,15 +96,15 @@ public class ServiceMixConsumer extends
private void handleCamelResponse(Exchange exchange,
org.apache.camel.Exchange camelExchange) {
// just copy the camelExchange back to the nmr exchange
exchange.getProperties().putAll(camelExchange.getProperties());
- if (camelExchange.hasOut() && !camelExchange.getOut().isFault()) {
- getEndpoint().getComponent().getBinding().
+ if (camelExchange.getException() != null) {
+ exchange.setError(camelExchange.getException());
+ exchange.setStatus(Status.Error);
+ } else if (camelExchange.hasOut() &&
!camelExchange.getOut().isFault()) {
+ getEndpoint().getComponent().getBinding().
copyCamelMessageToNmrMessage(exchange.getOut(),
camelExchange.getOut());
} else if (camelExchange.hasOut() && camelExchange.getOut().isFault())
{
- getEndpoint().getComponent().getBinding().
+ getEndpoint().getComponent().getBinding().
copyCamelMessageToNmrMessage(exchange.getFault(),
camelExchange.getOut());
- } else if (camelExchange.getException() != null) {
- exchange.setError(camelExchange.getException());
- exchange.setStatus(Status.Error);
} else {
exchange.setStatus(Status.Done);
}