You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/02/29 06:34:33 UTC

svn commit: r1294979 - in /camel/branches/camel-2.8.x: ./ camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java

Author: davsclaus
Date: Wed Feb 29 05:34:32 2012
New Revision: 1294979

URL: http://svn.apache.org/viewvc?rev=1294979&view=rev
Log:
CAMEL-4959: Type convertion with NaN numbers requires a bit special handling.

Modified:
    camel/branches/camel-2.8.x/   (props changed)
    camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
    camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 29 05:34:32 2012
@@ -1,2 +1,2 @@
-/camel/branches/camel-2.9.x:1227549,1228229,1229567,1234054,1236672,1238942,1240157,1241006,1241489,1243052,1243058,1244875,1244877,1291871,1292116,1292389,1292726,1292769,1293082,1293935,1294044,1294589,1294914
-/camel/trunk:1226860,1227540,1228223,1229565,1234043,1236667,1238937,1240025,1240950,1240967,1241482,1243046,1243057,1244870,1244872,1291848,1292114,1292384,1292725,1292767,1293079,1293828,1293855,1294588,1294909
+/camel/branches/camel-2.9.x:1227549,1228229,1229567,1234054,1236672,1238942,1240157,1241006,1241489,1243052,1243058,1244875,1244877,1291871,1292116,1292389,1292726,1292769,1293082,1293935,1294044,1294589,1294914,1294978
+/camel/trunk:1226860,1227540,1228223,1229565,1234043,1236667,1238937,1240025,1240950,1240967,1241482,1243046,1243057,1244870,1244872,1291848,1292114,1292384,1292725,1292767,1293079,1293828,1293855,1294588,1294909,1294976

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=1294979&r1=1294978&r2=1294979&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed Feb 29 05:34:32 2012
@@ -1326,9 +1326,10 @@ public final class ObjectHelper {
      * @return <tt>true</tt> if its a {@link Float#NaN} or {@link Double#NaN}.
      */
     public static boolean isNaN(Object value) {
-        if (value == null) {
+        if (value == null || !(value instanceof Number)) {
             return false;
         }
+        // value must be a number
         return value.equals(Float.NaN) || value.equals(Double.NaN);
     }
 

Modified: camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java?rev=1294979&r1=1294978&r2=1294979&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java Wed Feb 29 05:34:32 2012
@@ -317,5 +317,19 @@ public class ObjectHelperTest extends Te
         String code3 = ObjectHelper.getIdentityHashCode(dummyB);
         assertNotSame(code, code3);
     }
+    
+    public void testIsNaN() throws Exception {
+        assertTrue(ObjectHelper.isNaN(Float.NaN));
+        assertTrue(ObjectHelper.isNaN(Double.NaN));
+
+        assertFalse(ObjectHelper.isNaN(null));
+        assertFalse(ObjectHelper.isNaN(""));
+        assertFalse(ObjectHelper.isNaN("1.0"));
+        assertFalse(ObjectHelper.isNaN(1));
+        assertFalse(ObjectHelper.isNaN(1.5f));
+        assertFalse(ObjectHelper.isNaN(1.5d));
+        assertFalse(ObjectHelper.isNaN(false));
+        assertFalse(ObjectHelper.isNaN(true));
+    }
 
 }