Author: boday Date: Thu May 26 16:36:01 2011 New Revision: 1127988 URL: http://svn.apache.org/viewvc?rev=1127988&view=rev Log: CAMEL-4011: updated ObjectConverter.toX() methods to check for Double.NaN and Float.NaN and return NULL instead of 0
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java?rev=1127988&r1=1127987&r2=1127988&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java Thu May 26 16:36:01 2011 @@ -137,7 +137,7 @@ public final class ObjectConverter { if (value instanceof Short) { return (Short) value; } else if (value instanceof Number) { - if (value.equals(Double.NaN)) { + if (value.equals(Float.NaN) || value.equals(Double.NaN)) { return null; } Number number = (Number) value; @@ -157,7 +157,7 @@ public final class ObjectConverter { if (value instanceof Integer) { return (Integer) value; } else if (value instanceof Number) { - if (value.equals(Double.NaN)) { + if (value.equals(Float.NaN) || value.equals(Double.NaN)) { return null; } Number number = (Number) value; @@ -177,7 +177,7 @@ public final class ObjectConverter { if (value instanceof Long) { return (Long) value; } else if (value instanceof Number) { - if (value.equals(Double.NaN)) { + if (value.equals(Float.NaN) || value.equals(Double.NaN)) { return null; } Number number = (Number) value; @@ -217,6 +217,9 @@ public final class ObjectConverter { if (value instanceof Double) { return (Double) value; } else if (value instanceof Number) { + if (value.equals(Float.NaN)) { + return null; + } Number number = (Number) value; return number.doubleValue(); } else if (value instanceof String) { Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java?rev=1127988&r1=1127987&r2=1127988&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java Thu May 26 16:36:01 2011 @@ -61,6 +61,7 @@ public class ObjectConverterTest extends assertEquals(Short.valueOf("4"), ObjectConverter.toShort("4")); assertEquals(null, ObjectConverter.toShort(new Date())); assertEquals(null, ObjectConverter.toShort(Double.NaN)); + assertEquals(null, ObjectConverter.toShort(Float.NaN)); } public void testToInteger() { @@ -69,6 +70,7 @@ public class ObjectConverterTest extends assertEquals(Integer.valueOf("4"), ObjectConverter.toInteger("4")); assertEquals(null, ObjectConverter.toInteger(new Date())); assertEquals(null, ObjectConverter.toInteger(Double.NaN)); + assertEquals(null, ObjectConverter.toInteger(Float.NaN)); } public void testToLong() { @@ -77,6 +79,7 @@ public class ObjectConverterTest extends assertEquals(Long.valueOf("4"), ObjectConverter.toLong("4")); assertEquals(null, ObjectConverter.toLong(new Date())); assertEquals(null, ObjectConverter.toLong(Double.NaN)); + assertEquals(null, ObjectConverter.toLong(Float.NaN)); } public void testToFloat() { @@ -85,6 +88,7 @@ public class ObjectConverterTest extends assertEquals(Float.valueOf("4"), ObjectConverter.toFloat("4")); assertEquals(null, ObjectConverter.toFloat(new Date())); assertEquals(null, ObjectConverter.toFloat(Double.NaN)); + assertEquals(Float.NaN, ObjectConverter.toFloat(Float.NaN)); } public void testToDouble() { @@ -93,6 +97,7 @@ public class ObjectConverterTest extends assertEquals(Double.valueOf("4"), ObjectConverter.toDouble("4")); assertEquals(null, ObjectConverter.toDouble(new Date())); assertEquals(Double.NaN, ObjectConverter.toDouble(Double.NaN)); + assertEquals(null, ObjectConverter.toDouble(Float.NaN)); } public void testToString() {