SMXCOMP-963 - StaticRoutingSlip doesn't propagate errors to the caller endpoint when some endpoints in in the slip doesn't exist

git-svn-id: https://svn.apache.org/repos/asf/servicemix/components/trunk@1442920 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/engines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/StaticRoutingSlip.java b/engines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/StaticRoutingSlip.java
index cf46239..e0b751d 100644
--- a/engines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/StaticRoutingSlip.java
+++ b/engines/servicemix-eip/src/main/java/org/apache/servicemix/eip/patterns/StaticRoutingSlip.java
@@ -233,7 +233,15 @@
                 targets[curIndex.intValue()].configureTarget(me, getContext());
                 store.store(exchange.getExchangeId(), exchange);
                 MessageUtil.transferOutToIn(exchange, me);
-                send(me);
+                try {
+                    send(me);
+                } catch (RuntimeException re) {
+                    // send delivery channel errors back to calling endpoint
+                    if (correlationId != null) {
+                        me = (MessageExchange) store.load(correlationId);                      
+                    } 
+                    fail(me, exchange.getError());
+                } 
                 if (previousId != null) {
                     me = (MessageExchange) store.load(previousId);
                     done(me);