You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2009/08/04 23:32:48 UTC

svn commit: r800988 - in /commons/proper/beanutils/trunk/src: java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java

Author: niallp
Date: Tue Aug  4 21:32:47 2009
New Revision: 800988

URL: http://svn.apache.org/viewvc?rev=800988&view=rev
Log:
BEANUTILS-351 FloatLocaleConverter cannot parse 0 - thanks to Lucian Chirita

Modified:
    commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java
    commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java

Modified: commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java?rev=800988&r1=800987&r2=800988&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java (original)
+++ commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/FloatLocaleConverter.java Tue Aug  4 21:32:47 2009
@@ -218,7 +218,7 @@
       final Number parsed = (Number) super.parse(value, pattern);
       double doubleValue = parsed.doubleValue();
       double posDouble = (doubleValue >= (double)0) ? doubleValue : (doubleValue * (double)-1);
-      if (posDouble < Float.MIN_VALUE || posDouble > Float.MAX_VALUE) {
+      if (posDouble != 0 && posDouble < Float.MIN_VALUE || posDouble > Float.MAX_VALUE) {
           throw new ConversionException("Supplied number is not of type Float: "+parsed);
       }
       return new Float(parsed.floatValue()); // unlike superclass it returns Float type

Modified: commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java?rev=800988&r1=800987&r2=800988&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java (original)
+++ commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/FloatLocaleConverterTestCase.java Tue Aug  4 21:32:47 2009
@@ -18,7 +18,10 @@
 package org.apache.commons.beanutils.locale.converters;
 
 import java.text.DecimalFormat;
+import java.util.Locale;
+
 import org.apache.commons.beanutils.ConversionException;
+import org.apache.commons.beanutils.locale.LocaleConvertUtils;
 
 /**
  * Test Case for the FloatLocaleConverter class.
@@ -303,6 +306,18 @@
         }
     }
 
+    /**
+     * Test parsing zero - see BEANUTILS-351
+     */
+    public void testParseZero() {
+        try {
+            Object result = LocaleConvertUtils.convert("0", Float.class, Locale.US, null);
+            assertEquals(new Float(0), result);
+        } catch (ConversionException e) {
+            fail("Zero threw ConversionException: " + e);
+        }
+        
+    }
 
 
 }