You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/11/02 18:10:15 UTC
svn commit: r1538226 - in /commons/proper/beanutils/branches/java5/src:
main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java
test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java
Author: oheger
Date: Sat Nov 2 17:10:15 2013
New Revision: 1538226
URL: http://svn.apache.org/r1538226
Log:
Fixed a regression after the generification of converters.
If LocaleConverterUtilsBean cannot find a converter for the specified target
class, it uses the default string converter. This converter can now fail if
it does not support the target type.
Modified:
commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java
commons/proper/beanutils/branches/java5/src/test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java
Modified: commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java?rev=1538226&r1=1538225&r2=1538226&view=diff
==============================================================================
--- commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java (original)
+++ commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsBean.java Sat Nov 2 17:10:15 2013
@@ -272,16 +272,18 @@ public class LocaleConvertUtilsBean {
" locale and " + pattern + " pattern");
}
+ Class<?> targetClass = clazz;
LocaleConverter converter = lookup(clazz, locale);
if (converter == null) {
converter = lookup(String.class, locale);
+ targetClass = String.class;
}
if (log.isTraceEnabled()) {
log.trace(" Using converter " + converter);
}
- return (converter.convert(clazz, value, pattern));
+ return (converter.convert(targetClass, value, pattern));
}
/**
Modified: commons/proper/beanutils/branches/java5/src/test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/branches/java5/src/test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java?rev=1538226&r1=1538225&r2=1538226&view=diff
==============================================================================
--- commons/proper/beanutils/branches/java5/src/test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java (original)
+++ commons/proper/beanutils/branches/java5/src/test/java/org/apache/commons/beanutils/locale/LocaleConvertUtilsTestCase.java Sat Nov 2 17:10:15 2013
@@ -628,6 +628,17 @@ public class LocaleConvertUtilsTestCase
assertEquals("Integer Array Value", new Integer(123), ((Integer[])result)[0]);
}
+ /**
+ * Tests a conversion if there is no suitable converter registered. In this
+ * case, the string converter is used, and the passed in target type is
+ * ignored. (This test is added to prevent a regression after the locale
+ * converters have been generified.)
+ */
+ public void testDefaultToStringConversionUnsupportedType() {
+ Integer value = 20131101;
+ assertEquals("Wrong result", value.toString(),
+ LocaleConvertUtils.convert(value.toString(), getClass()));
+ }
// -------------------------------------------------------- Private Methods