Fixed simple language routeId function to return the id of the current route 
and not the originated route.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e80810fd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e80810fd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e80810fd

Branch: refs/heads/master
Commit: e80810fdb414b9d51de407ff19e33147d8c0e8a3
Parents: 462f00e
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue May 21 06:34:10 2013 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue May 21 07:43:39 2013 +0200

----------------------------------------------------------------------
 .../apache/camel/builder/ExpressionBuilder.java    |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e80810fd/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java 
b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
index c4fbce2..3527140 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
@@ -1402,12 +1402,17 @@ public final class ExpressionBuilder {
     public static Expression routeIdExpression() {
         return new ExpressionAdapter() {
             public Object evaluate(Exchange exchange) {
+                String answer = null;
                 UnitOfWork uow = exchange.getUnitOfWork();
                 RouteContext rc = uow != null ? uow.getRouteContext() : null;
                 if (rc != null) {
-                    return rc.getRoute().getId();
+                    answer = rc.getRoute().getId();
                 }
-                return null;
+                if (answer == null) {
+                    // fallback and get from route id on the exchange
+                    answer = exchange.getFromRouteId();
+                }
+                return answer;
             }
 
             @Override

Reply via email to