Author: niallp Date: Mon Jun 11 08:42:53 2007 New Revision: 546174 URL: http://svn.apache.org/viewvc?view=rev&rev=546174 Log: Fix for BEANUTILS-283 - ConvertUtilsBean doesn't handle conversion to String correctly - thanks to Josef Cacek
Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/ConvertUtilsTestCase.java Modified: jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java?view=diff&rev=546174&r1=546173&r2=546174 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/ConvertUtilsBean.java Mon Jun 11 08:42:53 2007 @@ -542,8 +542,8 @@ } converted = converter.convert(targetType, value); } - if (targetType == String.class && value != null) { - converted = value.toString(); + if (targetType == String.class && converted != null) { + converted = converted.toString(); } return converted; Modified: jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/ConvertUtilsTestCase.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/ConvertUtilsTestCase.java?view=diff&rev=546174&r1=546173&r2=546174 ============================================================================== --- jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/ConvertUtilsTestCase.java (original) +++ jakarta/commons/proper/beanutils/trunk/src/test/org/apache/commons/beanutils/ConvertUtilsTestCase.java Mon Jun 11 08:42:53 2007 @@ -21,6 +21,10 @@ import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Locale; +import org.apache.commons.beanutils.converters.DateConverter; import junit.framework.TestCase; import junit.framework.Test; import junit.framework.TestSuite; @@ -607,6 +611,27 @@ ConvertUtils.deregister(Boolean.TYPE); assertNull("Converter should be null",ConvertUtils.lookup(Boolean.TYPE)); + } + + public void testConvertToString() throws Exception { + + ConvertUtilsBean utils = new ConvertUtilsBean(); + + // Register a DateConverter using Locale.US + DateConverter dateConverter = new DateConverter(); + dateConverter.setLocale(Locale.US); + utils.register(dateConverter, java.util.Date.class); + + java.util.Date today = new java.util.Date(); + DateFormat fmt = new SimpleDateFormat("M/d/yy"); /* US Short Format */ + String expected = fmt.format(today); + + assertEquals("date M/d/yy", expected, utils.convert(today, String.class)); + + // Remove the registered DateConverter + utils.deregister(java.util.Date.class); + assertEquals("Date.toString()", today.toString(), utils.convert(today, String.class)); + } // -------------------------------------------------------- Private Methods --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]