This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3e230eec1cee1a1e74a0806f2f775b10990adc13 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Jun 27 06:04:01 2019 +0200 CAMEL-13689: camel-core - Converting string to boolean should only accept true or false literals --- .../java/org/apache/camel/language/spel/SpelTest.java | 6 ------ .../org/apache/camel/converter/ObjectConverter.java | 2 +- .../apache/camel/converter/ObjectConverterTest.java | 19 +++++++++++++++++++ .../main/java/org/apache/camel/util/ObjectHelper.java | 6 +++++- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/components/camel-spring/src/test/java/org/apache/camel/language/spel/SpelTest.java b/components/camel-spring/src/test/java/org/apache/camel/language/spel/SpelTest.java index f808eb4..58a47ba 100644 --- a/components/camel-spring/src/test/java/org/apache/camel/language/spel/SpelTest.java +++ b/components/camel-spring/src/test/java/org/apache/camel/language/spel/SpelTest.java @@ -43,12 +43,6 @@ public class SpelTest extends LanguageTestSupport { } @Test - public void testGetOutFalseKeepsNullOutMessage() throws Exception { - assertExpression("exchange.hasOut()", false); - assertFalse(exchange.hasOut()); - } - - @Test public void testResponseCreatesOutMessage() throws Exception { assertExpression("#{response.body}", null); assertTrue(exchange.hasOut()); diff --git a/core/camel-base/src/main/java/org/apache/camel/converter/ObjectConverter.java b/core/camel-base/src/main/java/org/apache/camel/converter/ObjectConverter.java index 05f9750..a1c63a2 100644 --- a/core/camel-base/src/main/java/org/apache/camel/converter/ObjectConverter.java +++ b/core/camel-base/src/main/java/org/apache/camel/converter/ObjectConverter.java @@ -259,7 +259,7 @@ public final class ObjectConverter { @Converter public static Boolean toBoolean(String value) { - return Boolean.parseBoolean(value); + return org.apache.camel.util.ObjectHelper.toBoolean(value); } } diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java index 4eea211..e969278 100644 --- a/core/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java @@ -145,4 +145,23 @@ public class ObjectConverterTest extends Assert { assertEquals((Float) Float.NaN, ObjectConverter.toFloat(Float.NaN)); } + @Test + public void testToBoolean() throws Exception { + assertTrue(ObjectConverter.toBoolean("true")); + assertTrue(ObjectConverter.toBoolean("TRUE")); + assertFalse(ObjectConverter.toBoolean("false")); + assertFalse(ObjectConverter.toBoolean("FALSE")); + assertNull(ObjectConverter.toBoolean("1")); + assertNull(ObjectConverter.toBoolean("")); + assertNull(ObjectConverter.toBoolean("yes")); + + assertTrue(ObjectConverter.toBool("true")); + assertTrue(ObjectConverter.toBool("TRUE")); + assertFalse(ObjectConverter.toBool("false")); + assertFalse(ObjectConverter.toBool("FALSE")); + assertFalse(ObjectConverter.toBool("1")); + assertFalse(ObjectConverter.toBool("")); + assertFalse(ObjectConverter.toBool("yes")); + } + } diff --git a/core/camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java index d357fe2..7f97767 100644 --- a/core/camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java +++ b/core/camel-util/src/main/java/org/apache/camel/util/ObjectHelper.java @@ -127,7 +127,11 @@ public final class ObjectHelper { return (Boolean) value; } if (value instanceof String) { - return Boolean.valueOf((String) value); + // we only want to accept true or false as accepted values + String str = (String) value; + if ("true".equalsIgnoreCase(str) || "false".equalsIgnoreCase(str)) { + return Boolean.valueOf(str); + } } if (value instanceof Integer) { return (Integer) value > 0 ? Boolean.TRUE : Boolean.FALSE;