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]);
}
}