Author: boday Date: Thu May 26 00:44:21 2011 New Revision: 1127744 URL: http://svn.apache.org/viewvc?rev=1127744&view=rev Log: CAMEL-4011: updated ObjectConverter.toX() methods to check for Double.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/builder/xml/ExtractXPathWithNamespaceTest.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=1127744&r1=1127743&r2=1127744&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 00:44:21 2011 @@ -137,6 +137,9 @@ public final class ObjectConverter { if (value instanceof Short) { return (Short) value; } else if (value instanceof Number) { + if (value.equals(Double.NaN)) { + return null; + } Number number = (Number) value; return number.shortValue(); } else if (value instanceof String) { @@ -154,6 +157,9 @@ public final class ObjectConverter { if (value instanceof Integer) { return (Integer) value; } else if (value instanceof Number) { + if (value.equals(Double.NaN)) { + return null; + } Number number = (Number) value; return number.intValue(); } else if (value instanceof String) { @@ -171,6 +177,9 @@ public final class ObjectConverter { if (value instanceof Long) { return (Long) value; } else if (value instanceof Number) { + if (value.equals(Double.NaN)) { + return null; + } Number number = (Number) value; return number.longValue(); } else if (value instanceof String) { @@ -188,6 +197,9 @@ public final class ObjectConverter { if (value instanceof Float) { return (Float) value; } else if (value instanceof Number) { + if (value.equals(Double.NaN)) { + return null; + } Number number = (Number) value; return number.floatValue(); } else if (value instanceof String) { Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/ExtractXPathWithNamespaceTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/ExtractXPathWithNamespaceTest.java?rev=1127744&r1=1127743&r2=1127744&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/ExtractXPathWithNamespaceTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/builder/xml/ExtractXPathWithNamespaceTest.java Thu May 26 00:44:21 2011 @@ -16,7 +16,10 @@ */ package org.apache.camel.builder.xml; +import junit.framework.Assert; + import org.apache.camel.ContextTestSupport; +import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -48,11 +51,11 @@ public class ExtractXPathWithNamespaceTe public void testXPathWithNamespaceDifferentNamespace() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedBodiesReceived("<number xmlns=\"http://acme.com/cake\">55</number>"); - mock.expectedHeaderReceived("foo", 0); template.sendBody("direct:in", "<number xmlns=\"http://acme.com/cake\">55</number>"); mock.assertIsSatisfied(); + Assert.assertNull(mock.getExchanges().get(0).getIn().getHeader("foo")); } protected RouteBuilder createRouteBuilder() throws Exception { 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=1127744&r1=1127743&r2=1127744&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 00:44:21 2011 @@ -60,6 +60,7 @@ public class ObjectConverterTest extends assertEquals(Short.valueOf("4"), ObjectConverter.toShort(Integer.valueOf("4"))); assertEquals(Short.valueOf("4"), ObjectConverter.toShort("4")); assertEquals(null, ObjectConverter.toShort(new Date())); + assertEquals(null, ObjectConverter.toShort(Double.NaN)); } public void testToInteger() { @@ -67,6 +68,7 @@ public class ObjectConverterTest extends assertEquals(Integer.valueOf("4"), ObjectConverter.toInteger(Long.valueOf("4"))); assertEquals(Integer.valueOf("4"), ObjectConverter.toInteger("4")); assertEquals(null, ObjectConverter.toInteger(new Date())); + assertEquals(null, ObjectConverter.toInteger(Double.NaN)); } public void testToLong() { @@ -74,6 +76,7 @@ public class ObjectConverterTest extends assertEquals(Long.valueOf("4"), ObjectConverter.toLong(Integer.valueOf("4"))); assertEquals(Long.valueOf("4"), ObjectConverter.toLong("4")); assertEquals(null, ObjectConverter.toLong(new Date())); + assertEquals(null, ObjectConverter.toLong(Double.NaN)); } public void testToFloat() { @@ -81,6 +84,7 @@ public class ObjectConverterTest extends assertEquals(Float.valueOf("4"), ObjectConverter.toFloat(Integer.valueOf("4"))); assertEquals(Float.valueOf("4"), ObjectConverter.toFloat("4")); assertEquals(null, ObjectConverter.toFloat(new Date())); + assertEquals(null, ObjectConverter.toFloat(Double.NaN)); } public void testToDouble() { @@ -88,6 +92,7 @@ public class ObjectConverterTest extends assertEquals(Double.valueOf("4"), ObjectConverter.toDouble(Integer.valueOf("4"))); assertEquals(Double.valueOf("4"), ObjectConverter.toDouble("4")); assertEquals(null, ObjectConverter.toDouble(new Date())); + assertEquals(Double.NaN, ObjectConverter.toDouble(Double.NaN)); } public void testToString() {