Author: jcompagner
Date: Fri Mar  7 13:58:23 2008
New Revision: 634836

URL: http://svn.apache.org/viewvc?rev=634836&view=rev
Log:
WICKET-1395

Modified:
    
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
    
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java?rev=634836&r1=634835&r2=634836&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
 Fri Mar  7 13:58:23 2008
@@ -17,7 +17,6 @@
 package org.apache.wicket.util.convert.converters;
 
 import java.math.BigDecimal;
-import java.text.NumberFormat;
 import java.util.Locale;
 
 /**
@@ -40,39 +39,30 @@
                if (value == null || value.trim().equals(""))
                        return null;
 
-               NumberFormat format = getNumberFormat(locale);
-               try
+               final Number number = parse(value, -Double.MAX_VALUE, 
Double.MAX_VALUE, locale);
+               if (number instanceof BigDecimal)
                {
-                       Number number = format.parse(value);
-                       if (number instanceof BigDecimal)
-                       {
-                               return number;
-                       }
-                       else if (number instanceof Double)
-                       {
-                               return new BigDecimal(number.doubleValue());
-                       }
-                       else if (number instanceof Long)
-                       {
-                               return new BigDecimal(number.longValue());
-                       }
-                       else if (number instanceof Float)
-                       {
-                               return new BigDecimal(number.floatValue());
-                       }
-                       else if (number instanceof Integer)
-                       {
-                               return new BigDecimal(number.intValue());
-                       }
-                       else
-                       {
-                               return new BigDecimal(value);
-                       }
+                       return number;
                }
-               catch (Exception e)
+               else if (number instanceof Double)
                {
-                       throw newConversionException("Cannot parse '" + value + 
"' using format " + format,
-                               value, locale).setFormat(format);
+                       return new BigDecimal(number.doubleValue());
+               }
+               else if (number instanceof Long)
+               {
+                       return new BigDecimal(number.longValue());
+               }
+               else if (number instanceof Float)
+               {
+                       return new BigDecimal(number.floatValue());
+               }
+               else if (number instanceof Integer)
+               {
+                       return new BigDecimal(number.intValue());
+               }
+               else
+               {
+                       return new BigDecimal(value);
                }
        }
 }

Modified: 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java?rev=634836&r1=634835&r2=634836&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/util/convert/converters/ConvertersTest.java
 Fri Mar  7 13:58:23 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.util.convert.converters;
 
+import java.math.BigDecimal;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
@@ -61,11 +62,11 @@
        {
                final IConverterLocator converter = new ConverterLocator();
                assertEquals("7", 
converter.getConverter(Integer.class).convertToString(new Integer(7),
-                               Locale.US));
+                       Locale.US));
                assertEquals("7.1", 
converter.getConverter(Double.class).convertToString(new Double(7.1),
-                               Locale.US));
+                       Locale.US));
                assertEquals("7,1", 
converter.getConverter(Double.class).convertToString(new Double(7.1),
-                               DUTCH_LOCALE));
+                       DUTCH_LOCALE));
 
                Calendar cal = Calendar.getInstance(DUTCH_LOCALE);
                cal.clear();
@@ -73,9 +74,9 @@
                Date date = cal.getTime();
 
                assertEquals(date, 
converter.getConverter(Date.class).convertToObject("24-10-02",
-                               DUTCH_LOCALE));
+                       DUTCH_LOCALE));
                assertEquals("24-10-02", 
converter.getConverter(Date.class).convertToString(date,
-                               DUTCH_LOCALE));
+                       DUTCH_LOCALE));
 
                // empty strings should return null, NOT throw NPEs
                
assertNull(converter.getConverter(Integer.class).convertToObject("", 
Locale.US));
@@ -87,8 +88,21 @@
                
assertNull(converter.getConverter(Date.class).convertToObject("", Locale.US));
                
assertNull(converter.getConverter(Double.class).convertToObject("", Locale.US));
                assertEquals(Boolean.FALSE, 
converter.getConverter(Boolean.class).convertToObject("",
-                               Locale.US));
+                       Locale.US));
                
assertNotNull(converter.getConverter(String.class).convertToObject("", 
Locale.US));
+       }
+
+       /**
+        * @throws Exception
+        */
+       public void testThousandSeperator() throws Exception
+       {
+               BigDecimalConverter bdc = new BigDecimalConverter();
+               assertEquals(new BigDecimal(3000), bdc.convertToObject("3 000", 
Locale.FRENCH));
+
+               DoubleConverter dc = new DoubleConverter();
+               assertEquals(new Double(3000), dc.convertToObject("3 000", 
Locale.FRENCH));
+
        }
 
        /**


Reply via email to