Updated Branches:
  refs/heads/camel-2.11.x f01b416fd -> c67a30b52
  refs/heads/camel-2.12.x da00bb6f1 -> 573a3028a
  refs/heads/master 38a4ed8b7 -> fc3c56263


CAMEL-6953: contains predicate should deal with StringBuilder/StringBuffer 
types, if checking with String types


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

Branch: refs/heads/master
Commit: fc3c562637e4d5fad60c0a281c5821baedcce2e8
Parents: 38a4ed8
Author: Claus Ibsen <[email protected]>
Authored: Mon Nov 11 15:55:45 2013 +0100
Committer: Claus Ibsen <[email protected]>
Committed: Mon Nov 11 15:55:45 2013 +0100

----------------------------------------------------------------------
 .../org/apache/camel/util/ObjectHelper.java     |  8 ++++++
 .../org/apache/camel/util/ObjectHelperTest.java | 26 ++++++++++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/fc3c5626/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
index d6b9a3e..2b0827a 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
@@ -455,6 +455,14 @@ public final class ObjectHelper {
      * Returns true if the collection contains the specified value
      */
     public static boolean contains(Object collectionOrArray, Object value) {
+        // favor String types
+        if (collectionOrArray != null && (collectionOrArray instanceof 
StringBuffer || collectionOrArray instanceof StringBuilder)) {
+            collectionOrArray = collectionOrArray.toString();
+        }
+        if (value != null && (value instanceof StringBuffer || value 
instanceof StringBuilder)) {
+            value = value.toString();
+        }
+
         if (collectionOrArray instanceof Collection) {
             Collection<?> collection = (Collection<?>)collectionOrArray;
             return collection.contains(value);

http://git-wip-us.apache.org/repos/asf/camel/blob/fc3c5626/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java 
b/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
index 106c42c..315f866 100644
--- a/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
+++ b/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
@@ -93,6 +93,32 @@ public class ObjectHelperTest extends TestCase {
         assertFalse(ObjectHelper.contains("foo", "xyz"));
     }
 
+    public void testContainsStringBuilder() throws Exception {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Hello World");
+
+        assertTrue(ObjectHelper.contains(sb, "World"));
+        assertTrue(ObjectHelper.contains(sb, new StringBuffer("World")));
+        assertTrue(ObjectHelper.contains(sb, new StringBuilder("World")));
+
+        assertFalse(ObjectHelper.contains(sb, "Camel"));
+        assertFalse(ObjectHelper.contains(sb, new StringBuffer("Camel")));
+        assertFalse(ObjectHelper.contains(sb, new StringBuilder("Camel")));
+    }
+
+    public void testContainsStringBuffer() throws Exception {
+        StringBuffer sb = new StringBuffer();
+        sb.append("Hello World");
+
+        assertTrue(ObjectHelper.contains(sb, "World"));
+        assertTrue(ObjectHelper.contains(sb, new StringBuffer("World")));
+        assertTrue(ObjectHelper.contains(sb, new StringBuilder("World")));
+
+        assertFalse(ObjectHelper.contains(sb, "Camel"));
+        assertFalse(ObjectHelper.contains(sb, new StringBuffer("Camel")));
+        assertFalse(ObjectHelper.contains(sb, new StringBuilder("Camel")));
+    }
+
     public void testEqual() {
         assertTrue(ObjectHelper.equal(null, null));
         assertTrue(ObjectHelper.equal("", ""));

Reply via email to