Author: niallp Date: Thu Jul 12 07:40:37 2007 New Revision: 555645 URL: http://svn.apache.org/viewvc?view=rev&rev=555645 Log: BEANUTILS-288 Don't try parsing values that are already Dates/Numbers in Date/Number locale Converters
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DateLocaleConverter.java jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DecimalLocaleConverter.java jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/DateLocaleConverterTestCase.java jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/IntegerLocaleConverterTestCase.java Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DateLocaleConverter.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DateLocaleConverter.java?view=diff&rev=555645&r1=555644&r2=555645 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DateLocaleConverter.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DateLocaleConverter.java Thu Jul 12 07:40:37 2007 @@ -259,6 +259,16 @@ */ protected Object parse(Object value, String pattern) throws ParseException { + // Handle Date + if (value instanceof java.util.Date) { + return value; + } + + // Handle Calendar + if (value instanceof java.util.Calendar) { + return ((java.util.Calendar)value).getTime(); + } + if (locPattern) { pattern = convertLocalizedPattern(pattern, locale); } Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DecimalLocaleConverter.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DecimalLocaleConverter.java?view=diff&rev=555645&r1=555644&r2=555645 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DecimalLocaleConverter.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/locale/converters/DecimalLocaleConverter.java Thu Jul 12 07:40:37 2007 @@ -225,6 +225,11 @@ * cannot be performed successfully */ protected Object parse(Object value, String pattern) throws ParseException { + + if (value instanceof Number) { + return value; + } + // Note that despite the ambiguous "getInstance" name, and despite the // fact that objects returned from this method have the same toString // representation, each call to getInstance actually returns a new Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/DateLocaleConverterTestCase.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/DateLocaleConverterTestCase.java?view=diff&rev=555645&r1=555644&r2=555645 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/DateLocaleConverterTestCase.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/DateLocaleConverterTestCase.java Thu Jul 12 07:40:37 2007 @@ -430,5 +430,23 @@ } + /** + * Test java.util.Date + */ + public void testDateObject() { + converter = new DateLocaleConverter(defaultLocale); + assertEquals("java.util.Date", expectedValue, converter.convert(expectedValue)); + } + + /** + * Test Calendar + */ + public void testCalendarObject() { + converter = new DateLocaleConverter(defaultLocale); + java.util.Calendar calendar = java.util.Calendar.getInstance(); + calendar.setTime((java.util.Date)expectedValue); + assertEquals("java.util.Calendar", expectedValue, converter.convert(calendar)); + } + } Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/IntegerLocaleConverterTestCase.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/IntegerLocaleConverterTestCase.java?view=diff&rev=555645&r1=555644&r2=555645 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/IntegerLocaleConverterTestCase.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/locale/converters/IntegerLocaleConverterTestCase.java Thu Jul 12 07:40:37 2007 @@ -258,6 +258,19 @@ } + /** + * Test Converting a number + */ + public void testNumber() { + + // ------------- Construct using specified Locale -------- + converter = new IntegerLocaleConverter(localizedLocale); + + Integer value = new Integer(1234); + assertEquals("Convert Integer", value, converter.convert(value)); + assertEquals("Convert Long", value, converter.convert(new Long(value.intValue()))); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]