Author: davsclaus
Date: Sun Apr 14 09:43:17 2013
New Revision: 1467754

URL: http://svn.apache.org/r1467754
Log:
CAMEL-6271: StringQuoteHelper - Should ignore whitespace between quoted 
parameters

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/util/StingQuoteHelperTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java?rev=1467754&r1=1467753&r2=1467754&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringQuoteHelper.java
 Sun Apr 14 09:43:17 2013
@@ -61,11 +61,17 @@ public final class StringQuoteHelper {
             return null;
         }
 
+        if (input.indexOf(separator) == -1) {
+            // no separator in data, so return single string with input as is
+            return new String[]{trim ? input.trim() : input};
+        }
+
         List<String> answer = new ArrayList<String>();
         StringBuilder sb = new StringBuilder();
 
         boolean singleQuoted = false;
         boolean doubleQuoted = false;
+        boolean skipLeadingWhitespace = true;
 
         for (int i = 0; i < input.length(); i++) {
             char ch = input.charAt(i);
@@ -76,6 +82,10 @@ public final class StringQuoteHelper {
             } else if (ch == '"') {
                 doubleQuoted = !doubleQuoted;
                 continue;
+            } else if (ch == ' ') {
+                if (!singleQuoted && !doubleQuoted && skipLeadingWhitespace) {
+                    continue;
+                }
             } else if (ch == separator) {
                 // add as answer if we are not in a quote
                 if (!singleQuoted && !doubleQuoted && sb.length() > 0) {

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/StingQuoteHelperTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/StingQuoteHelperTest.java?rev=1467754&r1=1467753&r2=1467754&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/StingQuoteHelperTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/StingQuoteHelperTest.java
 Sun Apr 14 09:43:17 2013
@@ -27,7 +27,8 @@ public class StingQuoteHelperTest extend
         assertEquals(null, StringQuoteHelper.splitSafeQuote(null, ','));
 
         String[] out = StringQuoteHelper.splitSafeQuote("", ',');
-        assertEquals(0, out.length);
+        assertEquals(1, out.length);
+        assertEquals("", out[0]);
 
         out = StringQuoteHelper.splitSafeQuote("   ", ',');
         assertEquals(1, out.length);
@@ -82,10 +83,15 @@ public class StingQuoteHelperTest extend
         assertEquals("Hello Camel", out[0]);
         assertEquals("Bye World", out[1]);
 
-        out = StringQuoteHelper.splitSafeQuote("'Hello Camel', 'Bye World'", 
',', false);
+        out = StringQuoteHelper.splitSafeQuote("'Hello Camel', ' Bye World'", 
',', false);
         assertEquals(2, out.length);
         assertEquals("Hello Camel", out[0]);
         assertEquals(" Bye World", out[1]);
+
+        out = StringQuoteHelper.splitSafeQuote("'http:', ' '", ',', false);
+        assertEquals(2, out.length);
+        assertEquals("http:", out[0]);
+        assertEquals(" ", out[1]);
     }
 
 }


Reply via email to