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() {