You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/06/04 12:15:44 UTC

svn commit: r544115 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/converter/ main/java/org/apache/camel/impl/converter/ test/java/org/apache/camel/converter/ test/java/org/apache/camel/issues/

Author: jstrachan
Date: Mon Jun  4 03:15:39 2007
New Revision: 544115

URL: http://svn.apache.org/viewvc?view=rev&rev=544115
Log:
improvement for CAMEL-3 so that boolean b = in.getHeader("foo", boolean.class); does not throw a NPE for a missing header; instead false is returned for missing values

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/Issue3Test.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java?view=diff&rev=544115&r1=544114&r2=544115
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/IOConverter.java Mon Jun  4 03:15:39 2007
@@ -99,6 +99,9 @@
 
     @Converter
     public static String toString(BufferedReader reader) throws IOException {
+        if (reader == null) {
+            return null;
+        }
         try {
             StringBuilder builder = new StringBuilder();
             boolean first = true;

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java?view=diff&rev=544115&r1=544114&r2=544115
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java Mon Jun  4 03:15:39 2007
@@ -60,16 +60,30 @@
     }
 
     /**
-     * Converts the given value to a boolean, handling strings or Boolean objects; otherwise returning true if non-null
+     * Converts the given value to a boolean, handling strings or Boolean objects;
+     * otherwise returning false if the value could not be converted to a boolean
      */
     @Converter
-    public static boolean toBoolean(Object value) {
+    public static boolean toBool(Object value) {
+        Boolean answer = toBoolean(value);
+        if (answer != null) {
+            return answer.booleanValue();
+        }
+        return false;
+    }
+
+    /**
+     * Converts the given value to a Boolean, handling strings or Boolean objects;
+     * otherwise returning null if the value cannot be converted to a boolean
+     */
+    @Converter
+    public static Boolean toBoolean(Object value) {
         if (value instanceof Boolean) {
             return (Boolean) value;
         }
         if (value instanceof String) {
-            return "true".equalsIgnoreCase(value.toString());
+            return "true".equalsIgnoreCase(value.toString()) ? Boolean.TRUE : Boolean.FALSE;
         }
-        return false;
+        return null;
     }
 }

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java?view=diff&rev=544115&r1=544114&r2=544115
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/converter/DefaultTypeConverter.java Mon Jun  4 03:15:39 2007
@@ -104,7 +104,7 @@
     }
 
     protected <T> TypeConverter getOrFindTypeConverter(Class toType, Object value) {
-        Class fromType = null;
+        Class fromType = Object.class;
         if (value != null) {
             fromType = value.getClass();
         }

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java?view=diff&rev=544115&r1=544114&r2=544115
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java Mon Jun  4 03:15:39 2007
@@ -133,4 +133,8 @@
 
     }
 
+    public void testPrimitiveBooleanConversion() throws Exception {
+        boolean value = converter.convertTo(boolean.class, null);
+        assertFalse(value);
+    }
 }

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/Issue3Test.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/Issue3Test.java?view=diff&rev=544115&r1=544114&r2=544115
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/Issue3Test.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/Issue3Test.java Mon Jun  4 03:15:39 2007
@@ -52,6 +52,9 @@
 
                         Boolean isDebug = in.getHeader("someproperty", Boolean.class);
                         assertNull(isDebug);
+
+                        boolean isDebug2 = in.getHeader("someproperty", boolean.class);
+                        assertFalse(isDebug2);
                     }
                 });
             }