You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/08/30 15:03:09 UTC

[1/4] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Repository: camel
Updated Branches:
  refs/heads/master bfa4b0afe -> e28e8ac4d


CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo


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

Branch: refs/heads/master
Commit: 09cbacba0525e80cc583358f426630fb8259fa2f
Parents: bfa4b0a
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:57:24 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 09:57:24 2014 +0200

----------------------------------------------------------------------
 .../org/apache/camel/builder/ValueBuilder.java  | 28 +++++---
 .../camel/component/mock/AssertionClause.java   |  6 ++
 .../camel/issues/MockValueBuilderIssueTest.java | 72 ++++++++++++++++++++
 3 files changed, 95 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/09cbacba/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index e83400d..4724ddd 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -176,12 +176,12 @@ public class ValueBuilder implements Expression, Predicate {
 
     public ValueBuilder tokenize(String token) {
         Expression newExp = ExpressionBuilder.tokenizeExpression(expression, token);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizeXML(String tagName, String inheritNamespaceTagName) {
         Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, inheritNamespaceTagName);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder xtokenize(String path, Namespaces namespaces) {
@@ -191,12 +191,12 @@ public class ValueBuilder implements Expression, Predicate {
     public ValueBuilder xtokenize(String path, char mode, Namespaces namespaces) {
         Expression newExp = ExpressionBuilder.tokenizeXMLAwareExpression(path, mode);
         ((NamespaceAware)newExp).setNamespaces(namespaces.getNamespaces());
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     public ValueBuilder tokenizePair(String startToken, String endToken, boolean includeTokens) {
         Expression newExp = ExpressionBuilder.tokenizePairExpression(startToken, endToken, includeTokens);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -205,7 +205,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexTokenize(String regex) {
         Expression newExp = ExpressionBuilder.regexTokenizeExpression(expression, regex);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -214,7 +214,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, String replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -223,7 +223,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder regexReplaceAll(String regex, Expression replacement) {
         Expression newExp = ExpressionBuilder.regexReplaceAll(expression, regex, replacement);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -235,7 +235,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder convertTo(Class<?> type) {
         Expression newExp = ExpressionBuilder.convertToExpression(expression, type);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -254,7 +254,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder append(Object value) {
-        return new ValueBuilder(ExpressionBuilder.append(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.append(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -264,7 +265,8 @@ public class ValueBuilder implements Expression, Predicate {
      * @return the current builder
      */
     public ValueBuilder prepend(Object value) {
-        return new ValueBuilder(ExpressionBuilder.prepend(expression, asExpression(value)));
+        Expression newExp = ExpressionBuilder.prepend(expression, asExpression(value));
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -276,7 +278,7 @@ public class ValueBuilder implements Expression, Predicate {
      */
     public ValueBuilder sort(Comparator<?> comparator) {
         Expression newExp = ExpressionBuilder.sortExpression(expression, comparator);
-        return new ValueBuilder(newExp);
+        return onNewValueBuilder(newExp);
     }
 
     /**
@@ -311,4 +313,8 @@ public class ValueBuilder implements Expression, Predicate {
             return ExpressionBuilder.constantExpression(value);
         }
     }
+
+    protected ValueBuilder onNewValueBuilder(Expression exp) {
+        return new ValueBuilder(exp);
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/09cbacba/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
index 805c3f3..435851c 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/AssertionClause.java
@@ -142,10 +142,16 @@ public abstract class AssertionClause extends ExpressionClauseSupport<ValueBuild
             super(expression);
         }
 
+        @Override
         protected Predicate onNewPredicate(Predicate predicate) {
             predicate = super.onNewPredicate(predicate);
             addPredicate(predicate);
             return predicate;
         }
+
+        @Override
+        protected ValueBuilder onNewValueBuilder(Expression exp) {
+            return new PredicateValueBuilder(exp);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/09cbacba/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
new file mode 100644
index 0000000..920c312
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/issues/MockValueBuilderIssueTest.java
@@ -0,0 +1,72 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.issues;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+
+public class MockValueBuilderIssueTest extends ContextTestSupport {
+
+    public void testMockValueBuilder() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("2");
+
+        template.sendBody("direct:start", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testMockValueBuilderFail() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        try {
+            assertMockEndpointsSatisfied();
+            fail("Should fail");
+        } catch (Throwable e) {
+            assertEquals("Assertion error at index 0 on mock mock://result with predicate: property(foo) contains 4"
+                    + " evaluated as: 123 contains 4 on Exchange[Message: Hello World]", e.getMessage());
+        }
+    }
+
+    public void testMockValueBuilderNotSatisfied() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        mock.message(0).property("foo").convertTo(String.class).contains("4");
+
+        template.sendBody("direct:start", "Hello World");
+
+        mock.assertIsNotSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:start")
+                    .setProperty("foo", constant(123))
+                    .to("mock:result");
+            }
+        };
+    }
+}


[2/4] git commit: CAMEL-7768: Handle fault - Should convert the payload to String using type converter

Posted by da...@apache.org.
CAMEL-7768: Handle fault - Should convert the payload to String using type converter


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

Branch: refs/heads/master
Commit: f3309eb2b368115f3b95420ea31f00df40a5307e
Parents: 09cbacb
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 09:58:46 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 09:58:46 2014 +0200

----------------------------------------------------------------------
 .../camel/processor/interceptor/HandleFaultInterceptor.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f3309eb2/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
index cc6bbe5..538fe88 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/HandleFaultInterceptor.java
@@ -65,7 +65,8 @@ public class HandleFaultInterceptor extends DelegateAsyncProcessor {
                     exchange.setException((Throwable) faultBody);
                 } else {
                     // wrap it in an exception
-                    exchange.setException(new CamelException(faultBody.toString()));
+                    String data = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, faultBody);
+                    exchange.setException(new CamelException(data));
                 }
             }
         }


[4/4] git commit: CAMEL-7769: Mock - Allow to invoke a method while specifying an assertion

Posted by da...@apache.org.
CAMEL-7769: Mock - Allow to invoke a method while specifying an assertion


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

Branch: refs/heads/master
Commit: e28e8ac4de10c6d5f89672808847644ad4844982
Parents: eab0618
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 11:20:06 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 11:20:06 2014 +0200

----------------------------------------------------------------------
 .../apache/camel/builder/ExpressionBuilder.java | 23 ++++++++++++++++++++
 .../org/apache/camel/builder/ValueBuilder.java  | 11 ++++++++++
 .../issues/TryCatchWithSplitIssueTest.java      |  4 ++--
 .../onexception/OnExceptionHandledTest.java     |  2 +-
 4 files changed, 37 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e28e8ac4/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 44624d8..dfb4b99 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
@@ -830,6 +830,29 @@ public final class ExpressionBuilder {
     }
 
     /**
+     * Returns the expression for invoking a method (support OGNL syntax) on the given expression
+     *
+     * @param exp   the expression to evaluate and invoke the method on its result
+     * @param ognl  methods to invoke on the evaluated expression in a simple OGNL syntax
+     */
+    public static Expression ognlExpression(final Expression exp, final String ognl) {
+        return new ExpressionAdapter() {
+            public Object evaluate(Exchange exchange) {
+                Object value = exp.evaluate(exchange, Object.class);
+                if (value == null) {
+                    return null;
+                }
+                return new MethodCallExpression(value, ognl).evaluate(exchange);
+            }
+
+            @Override
+            public String toString() {
+                return "ognl(" + exp + ", " + ognl + ")";
+            }
+        };
+    }
+
+    /**
      * Returns the expression for the exchanges camelContext invoking methods defined
      * in a simple OGNL notation
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/e28e8ac4/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index 4724ddd..60782c3 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -282,6 +282,17 @@ public class ValueBuilder implements Expression, Predicate {
     }
 
     /**
+     * Invokes the method with the given name (supports OGNL syntax).
+     *
+     * @param methodName  name of method to invoke.
+     * @return the current builder
+     */
+    public ValueBuilder method(String methodName) {
+        Expression newExp = ExpressionBuilder.ognlExpression(expression, methodName);
+        return onNewValueBuilder(newExp);
+    }
+
+    /**
      * Negates the built expression.
      *
      * @return the current builder

http://git-wip-us.apache.org/repos/asf/camel/blob/e28e8ac4/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
index 2dd5e3f..043b902 100644
--- a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
+++ b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
@@ -31,7 +31,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).method("getMessage").isEqualTo("This is a dummy error James!");
 
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedBodiesReceived("Hi Claus", "Hi Willem");
@@ -45,7 +45,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).method("getMessage").isEqualTo("This is a dummy error James!");
 
         template.sendBody("direct:start", "James");
 

http://git-wip-us.apache.org/repos/asf/camel/blob/e28e8ac4/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
index 3254244..7f9f69f 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
@@ -31,7 +31,7 @@ public class OnExceptionHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Hello World");
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isInstanceOf(IllegalArgumentException.class);
-        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("Forced");
+        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).method("getMessage").isEqualTo("Forced");
 
         template.sendBody("direct:start", "Hello World");
 


[3/4] git commit: CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo

Posted by da...@apache.org.
CAMEL-7767: Mock - Defining assertion on message doest work if using convertTo


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

Branch: refs/heads/master
Commit: eab06182a1f670dbf28c1f7a97000236a8f4cdcb
Parents: f3309eb
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Aug 30 11:07:57 2014 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Aug 30 11:07:57 2014 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/util/MessageHelper.java   | 16 +++++++++++++---
 .../camel/issues/TryCatchWithSplitIssueTest.java    |  4 ++--
 .../onexception/OnExceptionHandledTest.java         |  2 +-
 3 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/eab06182/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
index 6576c98..502da6a 100644
--- a/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
@@ -17,6 +17,7 @@
 package org.apache.camel.util;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.Reader;
@@ -285,12 +286,15 @@ public final class MessageHelper {
             }
         }
 
-        // is the body a stream cache
-        StreamCache cache;
+        // is the body a stream cache or input stream
+        StreamCache cache = null;
+        InputStream is = null;
         if (obj instanceof StreamCache) {
             cache = (StreamCache)obj;
-        } else {
+            is = null;
+        } else if (obj instanceof InputStream) {
             cache = null;
+            is = (InputStream) obj;
         }
 
         // grab the message body as a string
@@ -309,6 +313,12 @@ public final class MessageHelper {
         // reset stream cache after use
         if (cache != null) {
             cache.reset();
+        } else if (is != null && is.markSupported()) {
+            try {
+                is.reset();
+            } catch (IOException e) {
+                // ignore
+            }
         }
 
         if (body == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/eab06182/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
index 3818190..2dd5e3f 100644
--- a/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
+++ b/camel-core/src/test/java/org/apache/camel/issues/TryCatchWithSplitIssueTest.java
@@ -31,7 +31,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedBodiesReceived("Hi Claus", "Hi Willem");
@@ -45,7 +45,7 @@ public class TryCatchWithSplitIssueTest extends ContextTestSupport {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("James");
         error.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
-        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("This is a dummy error James!");
+        error.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("This is a dummy error James!");
 
         template.sendBody("direct:start", "James");
 

http://git-wip-us.apache.org/repos/asf/camel/blob/eab06182/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
index 565b942..3254244 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandledTest.java
@@ -31,7 +31,7 @@ public class OnExceptionHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Hello World");
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isNotNull();
         mock.message(0).property(Exchange.EXCEPTION_CAUGHT).isInstanceOf(IllegalArgumentException.class);
-        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).isEqualTo("Forced");
+        mock.message(0).property(Exchange.EXCEPTION_CAUGHT).convertTo(String.class).contains("Forced");
 
         template.sendBody("direct:start", "Hello World");