This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git


The following commit(s) were added to refs/heads/master by this push:
     new 4732075e Generics
4732075e is described below

commit 4732075ec81eae6d6fa237f6cd5d442f44a75865
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Feb 18 12:11:39 2023 -0500

    Generics
---
 .../org/apache/commons/beanutils2/Converter.java   |  5 ++--
 .../beanutils2/converters/AbstractConverter.java   |  4 +--
 .../beanutils2/converters/ConverterFacade.java     |  2 +-
 .../beanutils2/locale/BaseLocaleConverter.java     | 14 +++++------
 .../commons/beanutils2/locale/LocaleConverter.java | 18 ++++++--------
 .../commons/beanutils2/BeanificationTestCase.java  |  8 +++---
 .../beanutils2/ThrowExceptionConverter.java        |  2 +-
 .../converters/BooleanConverterTestCase.java       |  2 +-
 .../converters/ClassConverterTestCase.java         | 14 +++++------
 .../beanutils2/converters/ClassReloader.java       | 24 +++++++++---------
 .../converters/DateConverterTestBase.java          |  8 +++---
 .../converters/DoubleConverterTestCase.java        |  2 +-
 .../converters/DurationConverterTestCase.java      |  4 +--
 .../converters/EnumConverterTestCase.java          |  6 ++---
 .../converters/FileConverterTestCase.java          |  4 +--
 .../converters/FloatConverterTestCase.java         |  4 +--
 .../converters/IntegerConverterTestCase.java       | 17 ++++++-------
 .../converters/LocalTimeConverterTestCase.java     |  4 +--
 .../converters/LongConverterTestCase.java          |  2 +-
 .../beanutils2/converters/MemoryTestCase.java      | 10 ++++----
 .../converters/MonthDayConverterTestCase.java      |  4 +--
 .../converters/NumberConverterTestBase.java        | 29 +++++++++++-----------
 .../converters/OffsetTimeConverterTestCase.java    |  4 +--
 .../converters/PathConverterTestCase.java          |  4 +--
 .../converters/PeriodConverterTestCase.java        |  4 +--
 .../converters/ShortConverterTestCase.java         |  4 +--
 .../converters/URIConverterTestCase.java           |  4 +--
 .../converters/UUIDConverterTestCase.java          |  4 +--
 .../converters/YearConverterTestCase.java          |  4 +--
 .../converters/YearMonthConverterTestCase.java     |  4 +--
 .../converters/ZoneIdConverterTestCase.java        |  4 +--
 .../converters/ZoneOffsetConverterTestCase.java    |  4 +--
 .../locale/LocaleBeanificationTestCase.java        |  8 +++---
 .../memoryleaktests/pojotests/CustomInteger.java   |  2 ++
 .../sql/converters/SqlDateConverterTestCase.java   |  2 +-
 35 files changed, 121 insertions(+), 118 deletions(-)

diff --git a/src/main/java/org/apache/commons/beanutils2/Converter.java 
b/src/main/java/org/apache/commons/beanutils2/Converter.java
index 0c2a5cd9..7283a084 100644
--- a/src/main/java/org/apache/commons/beanutils2/Converter.java
+++ b/src/main/java/org/apache/commons/beanutils2/Converter.java
@@ -30,7 +30,7 @@ package org.apache.commons.beanutils2;
  * non-thread-safe if the application using them is single-threaded. However
  * it is recommended that they be written in a thread-safe manner anyway.</p>
  *
- * @param <T> the desired result type.
+ * @param <T> the convert type.
  * @since 1.3
  */
 public interface Converter<T> {
@@ -39,6 +39,7 @@ public interface Converter<T> {
      * Convert the specified input object into an output object of the
      * specified type.
      *
+     * @param <R> the result type.
      * @param type Data type to which this value should be converted
      * @param value The input value to be converted
      * @return The converted value
@@ -46,6 +47,6 @@ public interface Converter<T> {
      * @throws ConversionException if conversion cannot be performed
      *  successfully
      */
-    T convert(Class<T> type, Object value);
+    <R> R convert(Class<R> type, Object value);
 
 }
diff --git 
a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java 
b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java
index 98a936c2..5fc0a3e5 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/converters/AbstractConverter.java
@@ -156,13 +156,13 @@ public abstract class AbstractConverter<D> implements 
Converter<D> {
      * successfully and no default is specified.
      */
     @Override
-    public D convert(final Class<D> type, Object value) {
+    public <R> R convert(final Class<R> type, Object value) {
         if (type == null) {
             return convertToDefaultType(value);
         }
 
         Class<?> sourceType  = value == null ? null : value.getClass();
-        final Class<D> targetType  = ConvertUtils.primitiveToWrapper(type);
+        final Class<R> targetType  = ConvertUtils.primitiveToWrapper(type);
 
         if (log().isDebugEnabled()) {
             log().debug("Converting"
diff --git 
a/src/main/java/org/apache/commons/beanutils2/converters/ConverterFacade.java 
b/src/main/java/org/apache/commons/beanutils2/converters/ConverterFacade.java
index 8bf4ce84..cba2ff47 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/converters/ConverterFacade.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/converters/ConverterFacade.java
@@ -57,7 +57,7 @@ public final class ConverterFacade<T> implements Converter<T> 
{
      * @return The converted value.
      */
     @Override
-    public T convert(final Class<T> type, final Object value) {
+    public <R> R convert(final Class<R> type, final Object value) {
         return converter.convert(type, value);
     }
 
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/BaseLocaleConverter.java 
b/src/main/java/org/apache/commons/beanutils2/locale/BaseLocaleConverter.java
index 0871fc96..4a7a9825 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/BaseLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/BaseLocaleConverter.java
@@ -109,10 +109,10 @@ public abstract class BaseLocaleConverter<T> implements 
LocaleConverter<T> {
      * @return the result cast to the target class
      * @throws ConversionException if the result object is not compatible with 
the target type
      */
-    private static <T> T checkConversionResult(final Class<T> type, final T 
result) {
+    private static <R> R checkConversionResult(final Class<R> type, final 
Object result) {
         if (type == null) {
-            // in this case we cannot do much; the result object is returned
-            return result;
+            // In this case we cannot do much: The result object is returned.
+            return (R) result;
         }
 
         if (result == null) {
@@ -166,7 +166,7 @@ public abstract class BaseLocaleConverter<T> implements 
LocaleConverter<T> {
      * @throws ConversionException if conversion cannot be performed 
successfully
      */
     @Override
-    public T convert(final Class<T> type, final Object value) {
+    public <R> R convert(final Class<R> type, final Object value) {
         return convert(type, value, null);
     }
 
@@ -181,8 +181,8 @@ public abstract class BaseLocaleConverter<T> implements 
LocaleConverter<T> {
      * @throws ConversionException if conversion cannot be performed 
successfully
      */
     @Override
-    public T convert(final Class<T> type, final Object value, final String 
pattern) {
-        final Class<T> targetType = ConvertUtils.primitiveToWrapper(type);
+    public <R> R convert(final Class<R> type, final Object value, final String 
pattern) {
+        final Class<R> targetType = ConvertUtils.primitiveToWrapper(type);
         if (value == null) {
             if (useDefault) {
                 return getDefaultAs(targetType);
@@ -242,7 +242,7 @@ public abstract class BaseLocaleConverter<T> implements 
LocaleConverter<T> {
      * @return the default value in the given target type
      * @throws ConversionException if the default object is not compatible 
with the target type
      */
-    private T getDefaultAs(final Class<T> type) {
+    private <R> R getDefaultAs(final Class<R> type) {
         return checkConversionResult(type, defaultValue);
     }
 
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConverter.java 
b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConverter.java
index ffedf17b..e5b0212a 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConverter.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConverter.java
@@ -20,8 +20,8 @@ package org.apache.commons.beanutils2.locale;
 import org.apache.commons.beanutils2.Converter;
 
 /**
- * <p>General purpose locale-sensitive data type converter that can be 
registered and used
- * within the BeanUtils package to manage the conversion of objects from
+ * <p>
+ * General purpose locale-sensitive data type converter that can be registered 
and used within the BeanUtils package to manage the conversion of objects from
  * one type to another.
  *
  * @param <T> The converter type.
@@ -29,16 +29,14 @@ import org.apache.commons.beanutils2.Converter;
 public interface LocaleConverter<T> extends Converter<T> {
 
     /**
-     * Convert the specified locale-sensitive input object into an output 
object of the
-     * specified type.
+     * Convert the specified locale-sensitive input object into an output 
object of the specified type.
      *
-     * @param type Data type to which this value should be converted
-     * @param value The input value to be converted
+     * @param <R>     the result type.
+     * @param type    Data type to which this value should be converted
+     * @param value   The input value to be converted
      * @param pattern The user-defined pattern is used for the input object 
formatting.
      * @return The converted value
-     *
-     * @throws org.apache.commons.beanutils2.ConversionException if conversion
-     * cannot be performed successfully or if the target type is not supported
+     * @throws org.apache.commons.beanutils2.ConversionException if conversion 
cannot be performed successfully or if the target type is not supported
      */
-    T convert(Class<T> type, Object value, String pattern);
+    <R> R convert(Class<R> type, Object value, String pattern);
 }
diff --git 
a/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java 
b/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
index cac2e755..6f5012a5 100644
--- a/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/BeanificationTestCase.java
@@ -196,7 +196,8 @@ public class BeanificationTestCase extends TestCase {
             public void run() {
                 try {
                     signal.setSignal(3);
-                    ConvertUtils.register((type, value) -> 
ConvertUtils.primitiveToWrapper(type).cast(new Integer(9)), Integer.TYPE);
+                    Converter c = (type, value) -> 
ConvertUtils.primitiveToWrapper(Integer.TYPE).cast(new Integer(9));
+                    ConvertUtils.register(c, Integer.TYPE);
                     BeanUtils.setProperty(bean, "int", new Integer(1));
                 } catch (final Exception e) {
                     e.printStackTrace();
@@ -214,7 +215,8 @@ public class BeanificationTestCase extends TestCase {
         BeanUtils.setProperty(bean, "int", new Integer(1));
         assertEquals("Wrong property value (1)", 1, bean.getInt());
 
-        ConvertUtils.register((type, value) -> 
ConvertUtils.primitiveToWrapper(type).cast(new Integer(5)), Integer.TYPE);
+        Converter c = (type, value) -> 
ConvertUtils.primitiveToWrapper(type).cast(new Integer(5));
+        ConvertUtils.register(c, Integer.TYPE);
         BeanUtils.setProperty(bean, "int", new Integer(1));
         assertEquals("Wrong property value(2)", 5, bean.getInt());
 
@@ -330,7 +332,7 @@ public class BeanificationTestCase extends TestCase {
         assertTrue("Different PropertyUtilsBean instances per context 
classloader", PropertyUtilsBean.getInstance() != signal.getPropertyUtils());
     }
 
-    /** Tests whether classloaders and beans are released from memory */
+    /** Tests whether class loaders and beans are released from memory */
     public void testMemoryLeak() throws Exception {
         if (BeanUtilsBeanTestCase.isPre14JVM()) {
             System.out.println("WARNING: CANNOT TEST MEMORY LEAK ON PRE1.4 
JVM");
diff --git 
a/src/test/java/org/apache/commons/beanutils2/ThrowExceptionConverter.java 
b/src/test/java/org/apache/commons/beanutils2/ThrowExceptionConverter.java
index c1ebf75c..e9b8c07b 100644
--- a/src/test/java/org/apache/commons/beanutils2/ThrowExceptionConverter.java
+++ b/src/test/java/org/apache/commons/beanutils2/ThrowExceptionConverter.java
@@ -24,7 +24,7 @@ package org.apache.commons.beanutils2;
 public class ThrowExceptionConverter implements Converter<Void> {
 
     @Override
-    public Void convert(final Class<Void> type, final Object value) {
+    public <R> R convert(final Class<R> type, final Object value) {
         throw new PassTestException();
     }
 }
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/BooleanConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/BooleanConverterTestCase.java
index 8d466c9a..b8a035dc 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/BooleanConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/BooleanConverterTestCase.java
@@ -62,7 +62,7 @@ public class BooleanConverterTestCase extends TestCase {
      * Tests a conversion to another target type. This should not be possible.
      */
     public void testConversionToOtherType() {
-        final AbstractConverter converter = new BooleanConverter();
+        final AbstractConverter<Boolean> converter = new BooleanConverter();
         try {
             converter.convert(Integer.class, STANDARD_TRUES[0]);
             fail("Could convert to unsupported type!");
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ClassConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/ClassConverterTestCase.java
index b13e4106..8e6bd32c 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/ClassConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/ClassConverterTestCase.java
@@ -59,7 +59,7 @@ public class ClassConverterTestCase extends TestCase {
      * Test Array Conversion
      */
     public void testArray() {
-        final Converter converter = new ClassConverter();
+        final Converter<Class<?>> converter = new ClassConverter();
 
         // Test Array Class to String
         assertEquals("Array to String", "[Ljava.lang.Boolean;", 
converter.convert(String.class, Boolean[].class));
@@ -73,7 +73,7 @@ public class ClassConverterTestCase extends TestCase {
      * Test Conversion to Class
      */
     public void testConvertToClass() {
-        final Converter<Class> converter = new ClassConverter();
+        final Converter<Class<?>> converter = new ClassConverter();
 
         assertEquals("Class Test", Integer.class, 
converter.convert(Class.class, Integer.class));
         assertEquals("String Test", Integer.class, 
converter.convert(Class.class, "java.lang.Integer"));
@@ -101,7 +101,7 @@ public class ClassConverterTestCase extends TestCase {
      */
     public void testConvertToClassDefault() {
 
-        final Converter<Class> converter = new ClassConverter(Object.class);
+        final Converter<Class<?>> converter = new ClassConverter(Object.class);
 
         assertEquals("Invalid Test", Object.class, 
converter.convert(Class.class, Integer.valueOf(6)));
         assertEquals("Null Test", Object.class, converter.convert(Class.class, 
null));
@@ -112,7 +112,7 @@ public class ClassConverterTestCase extends TestCase {
      */
     public void testConvertToClassDefaultNull() {
 
-        final Converter<Class> converter = new ClassConverter(null);
+        final Converter<Class<?>> converter = new ClassConverter(null);
 
         assertEquals("Invalid Test", null, converter.convert(Class.class, 
Integer.valueOf(6)));
         assertEquals("Null Test", null, converter.convert(Class.class, null));
@@ -122,7 +122,7 @@ public class ClassConverterTestCase extends TestCase {
      * Test Conversion to String
      */
     public void testConvertToString() {
-        final Converter converter = new ClassConverter();
+        final Converter<Class<?>> converter = new ClassConverter();
 
         assertEquals("Class Test", "java.lang.Integer", 
converter.convert(String.class, Integer.class));
         assertEquals("Value Test", "foo", converter.convert(String.class, 
"foo"));
@@ -134,7 +134,7 @@ public class ClassConverterTestCase extends TestCase {
      * Test Invalid
      */
     public void testInvalid() {
-        final Converter converter = new ClassConverter();
+        final Converter<Class<?>> converter = new ClassConverter();
 
         // Test invalid class name
         try {
@@ -149,7 +149,7 @@ public class ClassConverterTestCase extends TestCase {
      * Tries a conversion to an unsupported target type.
      */
     public void testUnsupportedTargetType() {
-        final Converter converter = new ClassConverter();
+        final Converter<Class<?>> converter = new ClassConverter();
         try {
             converter.convert(Integer.class, getClass().getName());
             fail("Invalid target class not detected!");
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ClassReloader.java 
b/src/test/java/org/apache/commons/beanutils2/converters/ClassReloader.java
index 479a5181..a8c0ff3f 100644
--- a/src/test/java/org/apache/commons/beanutils2/converters/ClassReloader.java
+++ b/src/test/java/org/apache/commons/beanutils2/converters/ClassReloader.java
@@ -53,22 +53,22 @@ public class ClassReloader extends ClassLoader {
     public Class<?> reload(final Class<?> clazz) throws FileNotFoundException, 
IOException {
         final String className = clazz.getName();
         final String classFile = className.replace('.', '/') + ".class";
-        final InputStream classStream = 
getParent().getResourceAsStream(classFile);
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try (InputStream classStream = 
getParent().getResourceAsStream(classFile)) {
 
-        if (classStream == null) {
-            throw new FileNotFoundException(classFile);
-        }
+            if (classStream == null) {
+                throw new FileNotFoundException(classFile);
+            }
 
-        final byte[] buf = new byte[1024];
-        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        for (;;) {
-            final int bytesRead = classStream.read(buf);
-            if (bytesRead == -1) {
-                break;
+            final byte[] buf = new byte[1024];
+            for (;;) {
+                final int bytesRead = classStream.read(buf);
+                if (bytesRead == -1) {
+                    break;
+                }
+                baos.write(buf, 0, bytesRead);
             }
-            baos.write(buf, 0, bytesRead);
         }
-        classStream.close();
 
         final byte[] classData = baos.toByteArray();
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/DateConverterTestBase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/DateConverterTestBase.java
index 8f332da4..f66d3276 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/DateConverterTestBase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/DateConverterTestBase.java
@@ -106,11 +106,11 @@ public abstract class DateConverterTestBase<T> extends 
TestCase {
      * @param converter The converter to use
      * @param value     The value to convert
      */
-    protected void invalidConversion(final Converter converter, final Object 
value) {
+    protected void invalidConversion(final Converter<T> converter, final 
Object value) {
         final String valueType = value == null ? "null" : 
value.getClass().getName();
         final String msg = "Converting '" + valueType + "' value '" + value + 
"'";
         try {
-            final Object result = converter.convert(getExpectedType(), value);
+            final T result = converter.convert(getExpectedType(), value);
             fail(msg + ", expected ConversionException, but result = '" + 
result + "'");
         } catch (final ConversionException ex) {
             // Expected Result
@@ -139,11 +139,11 @@ public abstract class DateConverterTestBase<T> extends 
TestCase {
      * @param expected  The expected result
      * @param value     The value to convert
      */
-    protected void stringConversion(final Converter converter, final String 
expected, final Object value) {
+    protected void stringConversion(final Converter<T> converter, final String 
expected, final Object value) {
         final String valueType = value == null ? "null" : 
value.getClass().getName();
         final String msg = "Converting '" + valueType + "' value '" + value + 
"' to String";
         try {
-            final Object result = converter.convert(String.class, value);
+            final String result = converter.convert(String.class, value);
             final Class<?> resultType = result == null ? null : 
result.getClass();
             final Class<?> expectType = expected == null ? null : 
expected.getClass();
             assertEquals("TYPE " + msg, expectType, resultType);
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/DoubleConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/DoubleConverterTestCase.java
index 694974e5..331b2743 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/DoubleConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/DoubleConverterTestCase.java
@@ -79,7 +79,7 @@ public class DoubleConverterTestCase extends 
NumberConverterTestBase<Double> {
         for (int i = 0; i < expected.length; i++) {
             assertEquals(message[i] + " to Double", expected[i].doubleValue(), 
converter.convert(Double.class, input[i]).doubleValue(), 0.00001D);
             assertEquals(message[i] + " to double", expected[i].doubleValue(), 
converter.convert(Double.TYPE, input[i]).doubleValue(), 0.00001D);
-            assertEquals(message[i] + " to null type", 
expected[i].doubleValue(), converter.convert(null, input[i]).doubleValue(), 
0.00001D);
+            assertEquals(message[i] + " to null type", 
expected[i].doubleValue(), converter.convert((Class<Double>) null, 
input[i]).doubleValue(), 0.00001D);
         }
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/DurationConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/DurationConverterTestCase.java
index f0302e49..63aeede9 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/DurationConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/DurationConverterTestCase.java
@@ -34,7 +34,7 @@ public class DurationConverterTestCase extends TestCase {
         return new TestSuite(DurationConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Duration> converter;
 
     public DurationConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class DurationConverterTestCase extends TestCase {
         return Duration.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<Duration> makeConverter() {
         return new DurationConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/EnumConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/EnumConverterTestCase.java
index dbe52a85..c70cc501 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/EnumConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/EnumConverterTestCase.java
@@ -37,7 +37,7 @@ public class EnumConverterTestCase extends TestCase {
         return new TestSuite(EnumConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Enum<PizzaStatus>> converter;
 
     public EnumConverterTestCase(final String name) {
         super(name);
@@ -47,8 +47,8 @@ public class EnumConverterTestCase extends TestCase {
         return Enum.class;
     }
 
-    protected Converter makeConverter() {
-        return new EnumConverter();
+    protected Converter<Enum<PizzaStatus>> makeConverter() {
+        return new EnumConverter<>();
     }
 
     @Override
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/FileConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/FileConverterTestCase.java
index 00ab2df2..b6b97de5 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/FileConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/FileConverterTestCase.java
@@ -34,7 +34,7 @@ public class FileConverterTestCase extends TestCase {
         return new TestSuite(FileConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<File> converter;
 
     public FileConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class FileConverterTestCase extends TestCase {
         return File.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<File> makeConverter() {
         return new FileConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/FloatConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/FloatConverterTestCase.java
index 4852c686..fe970fd6 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/FloatConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/FloatConverterTestCase.java
@@ -69,7 +69,7 @@ public class FloatConverterTestCase extends 
NumberConverterTestBase<Float> {
      * Test Invalid Amounts (too big/small)
      */
     public void testInvalidAmount() {
-        final Converter converter = makeConverter();
+        final Converter<Float> converter = makeConverter();
         final Class<?> clazz = Float.class;
 
         final Double max = Double.valueOf(Float.MAX_VALUE);
@@ -101,7 +101,7 @@ public class FloatConverterTestCase extends 
NumberConverterTestBase<Float> {
         for (int i = 0; i < expected.length; i++) {
             assertEquals(message[i] + " to Float", expected[i].floatValue(), 
converter.convert(Float.class, input[i]).floatValue(), 0.00001);
             assertEquals(message[i] + " to float", expected[i].floatValue(), 
converter.convert(Float.TYPE, input[i]).floatValue(), 0.00001);
-            assertEquals(message[i] + " to null type", 
expected[i].floatValue(), converter.convert(null, input[i]).floatValue(), 
0.00001);
+            assertEquals(message[i] + " to null type", 
expected[i].floatValue(), converter.convert((Class<Float>) null, 
input[i]).floatValue(), 0.00001);
         }
     }
 }
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/IntegerConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/IntegerConverterTestCase.java
index 6dce39cd..27b10450 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/IntegerConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/IntegerConverterTestCase.java
@@ -17,6 +17,8 @@
 
 package org.apache.commons.beanutils2.converters;
 
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 import org.apache.commons.beanutils2.ConversionException;
 import org.apache.commons.beanutils2.Converter;
 
@@ -31,7 +33,7 @@ public class IntegerConverterTestCase extends 
NumberConverterTestBase<Integer> {
         return new TestSuite(IntegerConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Integer> converter;
 
     public IntegerConverterTestCase(final String name) {
         super(name);
@@ -43,7 +45,7 @@ public class IntegerConverterTestCase extends 
NumberConverterTestBase<Integer> {
     }
 
     @Override
-    protected NumberConverter makeConverter() {
+    protected NumberConverter<Integer> makeConverter() {
         return new IntegerConverter();
     }
 
@@ -70,7 +72,7 @@ public class IntegerConverterTestCase extends 
NumberConverterTestBase<Integer> {
      * Test Invalid Amounts (too big/small)
      */
     public void testInvalidAmount() {
-        final Converter converter = makeConverter();
+        final Converter<Integer> converter = makeConverter();
         final Class<?> clazz = Integer.class;
 
         final Long min = Long.valueOf(Integer.MIN_VALUE);
@@ -104,14 +106,11 @@ public class IntegerConverterTestCase extends 
NumberConverterTestBase<Integer> {
     /**
      * Tests whether an invalid default object causes an exception.
      */
+    @SuppressWarnings("unchecked") // raw to test throwing
     public void testInvalidDefaultObject() {
+        @SuppressWarnings("rawtypes") // raw to test throwing
         final NumberConverter converter = makeConverter();
-        try {
-            converter.setDefaultValue("notANumber");
-            fail("Invalid default value not detected!");
-        } catch (final ConversionException cex) {
-            // expected result
-        }
+        assertThrows(ConversionException.class, () -> 
converter.setDefaultValue("notANumber"), "Invalid default value not detected!");
     }
 
     public void testSimpleConversion() throws Exception {
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/LocalTimeConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/LocalTimeConverterTestCase.java
index 6292b7e6..0066c6a6 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/LocalTimeConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/LocalTimeConverterTestCase.java
@@ -34,7 +34,7 @@ public class LocalTimeConverterTestCase extends TestCase {
         return new TestSuite(LocalTimeConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<LocalTime> converter;
 
     public LocalTimeConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class LocalTimeConverterTestCase extends TestCase {
         return LocalTime.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<LocalTime> makeConverter() {
         return new LocalTimeConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/LongConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/LongConverterTestCase.java
index ddc61fb8..2d101e51 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/LongConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/LongConverterTestCase.java
@@ -30,7 +30,7 @@ public class LongConverterTestCase extends 
NumberConverterTestBase<Long> {
         return new TestSuite(LongConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Long> converter = null;
 
     public LongConverterTestCase(final String name) {
         super(name);
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/MemoryTestCase.java 
b/src/test/java/org/apache/commons/beanutils2/converters/MemoryTestCase.java
index b7a3a08d..7bc124a3 100644
--- a/src/test/java/org/apache/commons/beanutils2/converters/MemoryTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/converters/MemoryTestCase.java
@@ -125,7 +125,7 @@ public class MemoryTestCase {
                 // After registering a custom converter, lookup should return
                 // it back to us. We'll try this lookup again with a different
                 // context-classloader set, and shouldn't see it
-                final Converter componentConverter = 
ConvertUtils.lookup(Float.TYPE);
+                final Converter<Float> componentConverter = 
ConvertUtils.lookup(Float.TYPE);
                 assertTrue(componentConverter.getClass().getClassLoader() == 
componentLoader);
 
                 newFloatConverter = null;
@@ -134,13 +134,13 @@ public class MemoryTestCase {
 
             // Because the context classloader has been reset, we shouldn't
             // see the custom registered converter here...
-            final Converter sharedConverter = ConvertUtils.lookup(Float.TYPE);
+            final Converter<Float> sharedConverter = 
ConvertUtils.lookup(Float.TYPE);
             assertFalse(sharedConverter.getClass().getClassLoader() == 
componentLoader);
 
             // and here we should see it again
             Thread.currentThread().setContextClassLoader(componentLoader);
             {
-                final Converter componentConverter = 
ConvertUtils.lookup(Float.TYPE);
+                final Converter<Float> componentConverter = 
ConvertUtils.lookup(Float.TYPE);
                 assertTrue(componentConverter.getClass().getClassLoader() == 
componentLoader);
             }
             
Thread.currentThread().setContextClassLoader(origContextClassLoader);
@@ -191,8 +191,8 @@ public class MemoryTestCase {
             final ClassLoader componentLoader2 = new ClassLoader() {
             };
 
-            final Converter origFloatConverter = 
ConvertUtils.lookup(Float.TYPE);
-            final Converter floatConverter1 = new FloatConverter();
+            final Converter<Float> origFloatConverter = 
ConvertUtils.lookup(Float.TYPE);
+            final Converter<Float> floatConverter1 = new FloatConverter();
 
             // Emulate the container invoking a component #1, and the component
             // registering a custom converter instance whose class is
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/MonthDayConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/MonthDayConverterTestCase.java
index 3db2bc1b..b865f030 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/MonthDayConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/MonthDayConverterTestCase.java
@@ -35,7 +35,7 @@ public class MonthDayConverterTestCase extends TestCase {
         return new TestSuite(MonthDayConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<MonthDay> converter;
 
     public MonthDayConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class MonthDayConverterTestCase extends TestCase {
         return MonthDay.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<MonthDay> makeConverter() {
         return new MonthDayConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/NumberConverterTestBase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/NumberConverterTestBase.java
index 16d06254..348b786d 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/NumberConverterTestBase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/NumberConverterTestBase.java
@@ -29,6 +29,7 @@ import junit.framework.TestCase;
 
 /**
  * Abstract base for &lt;Number&gt;Converter classes.
+ * @param <T> Number type.
  */
 public abstract class NumberConverterTestBase<T extends Number> extends 
TestCase {
 
@@ -60,7 +61,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert Calendar --> Long
      */
     public void testCalendarToNumber() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         final Calendar calendarValue = Calendar.getInstance();
         final long longValue = calendarValue.getTime().getTime();
@@ -111,7 +112,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert Date --> Long
      */
     public void testDateToNumber() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         final Date dateValue = new Date();
         final long longValue = dateValue.getTime();
@@ -144,7 +145,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert Number --> String (using default and specified Locales)
      */
     public void testInvalidException() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         try {
             converter.convert(getExpectedType(), null);
@@ -164,7 +165,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Test specifying an invalid type.
      */
     public void testInvalidType() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         try {
             converter.convert(Object.class, numbers[0]);
@@ -178,7 +179,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Tests a conversion to an unsupported type if a default value is set.
      */
     public void testInvalidTypeWithDefault() {
-        final NumberConverter converter = makeConverter((T) numbers[0]);
+        final NumberConverter<T> converter = makeConverter((T) numbers[0]);
 
         try {
             converter.convert(Object.class, numbers[0]);
@@ -192,7 +193,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert Number --> String (default conversion)
      */
     public void testNumberToStringDefault() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         // Default Number --> String conversion
         assertEquals("Default Convert " + numbers[0], numbers[0].toString(), 
converter.convert(String.class, numbers[0]));
@@ -207,7 +208,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
         final Locale defaultLocale = Locale.getDefault();
         Locale.setDefault(Locale.US);
 
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setUseLocaleFormat(true);
 
         // Default Locale
@@ -231,7 +232,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
         final Locale defaultLocale = Locale.getDefault();
         Locale.setDefault(Locale.US);
 
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setPattern("[0,0.0];(0,0.0)");
 
         // Default Locale
@@ -251,7 +252,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert Other --> String (default conversion)
      */
     public void testOtherToStringDefault() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
 
         // Other type --> String conversion
         assertEquals("Default Convert ", "ABC", 
converter.convert(String.class, new StringBuilder("ABC")));
@@ -262,7 +263,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      */
     public void testStringArrayToInteger() {
         final Integer defaultValue = Integer.valueOf(-1);
-        final NumberConverter converter = new 
IntegerConverterTestCase("test").makeConverter(defaultValue);
+        final NumberConverter<Integer> converter = new 
IntegerConverterTestCase("test").makeConverter(defaultValue);
 
         // Default Locale
         assertEquals("Valid First", Integer.valueOf(5), 
converter.convert(Integer.class, new String[] { "5", "4", "3" }));
@@ -275,7 +276,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert String --> Number (default conversion)
      */
     public void testStringToNumberDefault() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setUseLocaleFormat(false);
 
         // Default String --> Number conversion
@@ -294,7 +295,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
      * Convert String --> Number if the target type is not defined. Then the 
default type should be used.
      */
     public void testStringToNumberDefaultType() {
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setUseLocaleFormat(false);
 
         assertEquals("Default Convert " + numbers[0], numbers[0], 
converter.convert(null, numbers[0].toString()));
@@ -308,7 +309,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
         final Locale defaultLocale = Locale.getDefault();
         Locale.setDefault(Locale.US);
 
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setUseLocaleFormat(true);
 
         // Default Locale
@@ -349,7 +350,7 @@ public abstract class NumberConverterTestBase<T extends 
Number> extends TestCase
         final Locale defaultLocale = Locale.getDefault();
         Locale.setDefault(Locale.US);
 
-        final NumberConverter converter = makeConverter();
+        final NumberConverter<T> converter = makeConverter();
         converter.setPattern("[0,0];(0,0)");
 
         // Default Locale
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/OffsetTimeConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/OffsetTimeConverterTestCase.java
index 19128979..4ce34be8 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/OffsetTimeConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/OffsetTimeConverterTestCase.java
@@ -34,7 +34,7 @@ public class OffsetTimeConverterTestCase extends TestCase {
         return new TestSuite(OffsetTimeConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<OffsetTime> converter = null;
 
     public OffsetTimeConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class OffsetTimeConverterTestCase extends TestCase {
         return OffsetTime.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<OffsetTime> makeConverter() {
         return new OffsetTimeConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/PathConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/PathConverterTestCase.java
index 77843c64..1f6b5b58 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/PathConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/PathConverterTestCase.java
@@ -37,7 +37,7 @@ public class PathConverterTestCase extends TestCase {
         return new TestSuite(PathConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Path> converter = null;
 
     public PathConverterTestCase(final String name) {
         super(name);
@@ -47,7 +47,7 @@ public class PathConverterTestCase extends TestCase {
         return Path.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<Path> makeConverter() {
         return new PathConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/PeriodConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/PeriodConverterTestCase.java
index 0edb94cf..eb73e937 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/PeriodConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/PeriodConverterTestCase.java
@@ -35,7 +35,7 @@ public class PeriodConverterTestCase extends TestCase {
         return new TestSuite(PeriodConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Period> converter = null;
 
     public PeriodConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class PeriodConverterTestCase extends TestCase {
         return Period.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<Period> makeConverter() {
         return new PeriodConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ShortConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/ShortConverterTestCase.java
index 7e3aa58a..d585f6f6 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/ShortConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/ShortConverterTestCase.java
@@ -30,7 +30,7 @@ public class ShortConverterTestCase extends 
NumberConverterTestBase<Short> {
         return new TestSuite(ShortConverterTestCase.class);
     }
 
-    private ShortConverter converter = null;
+    private ShortConverter converter;
 
     public ShortConverterTestCase(final String name) {
         super(name);
@@ -69,7 +69,7 @@ public class ShortConverterTestCase extends 
NumberConverterTestBase<Short> {
      * Test Invalid Amounts (too big/small)
      */
     public void testInvalidAmount() {
-        final Converter converter = makeConverter();
+        final Converter<Short> converter = makeConverter();
         final Class<?> clazz = Short.class;
 
         final Long min = Long.valueOf(Short.MIN_VALUE);
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/URIConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/URIConverterTestCase.java
index ba8c2cea..4cd06266 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/URIConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/URIConverterTestCase.java
@@ -35,7 +35,7 @@ public class URIConverterTestCase extends TestCase {
         return new TestSuite(URIConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<URI> converter = null;
 
     public URIConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class URIConverterTestCase extends TestCase {
         return URI.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<URI> makeConverter() {
         return new URIConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/UUIDConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/UUIDConverterTestCase.java
index 83a40a6d..13b872ba 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/UUIDConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/UUIDConverterTestCase.java
@@ -35,7 +35,7 @@ public class UUIDConverterTestCase extends TestCase {
         return new TestSuite(UUIDConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<UUID> converter = null;
 
     public UUIDConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class UUIDConverterTestCase extends TestCase {
         return UUID.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<UUID> makeConverter() {
         return new UUIDConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/YearConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/YearConverterTestCase.java
index 3506258d..7d275f8e 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/YearConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/YearConverterTestCase.java
@@ -34,7 +34,7 @@ public class YearConverterTestCase extends TestCase {
         return new TestSuite(YearConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<Year> converter = null;
 
     public YearConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class YearConverterTestCase extends TestCase {
         return Year.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<Year> makeConverter() {
         return new YearConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/YearMonthConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/YearMonthConverterTestCase.java
index 640cdbf2..87583b9f 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/YearMonthConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/YearMonthConverterTestCase.java
@@ -34,7 +34,7 @@ public class YearMonthConverterTestCase extends TestCase {
         return new TestSuite(YearMonthConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<YearMonth> converter;
 
     public YearMonthConverterTestCase(final String name) {
         super(name);
@@ -44,7 +44,7 @@ public class YearMonthConverterTestCase extends TestCase {
         return YearMonth.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<YearMonth> makeConverter() {
         return new YearMonthConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ZoneIdConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/ZoneIdConverterTestCase.java
index 224b4d9f..107d9a5b 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/ZoneIdConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/ZoneIdConverterTestCase.java
@@ -35,7 +35,7 @@ public class ZoneIdConverterTestCase extends TestCase {
         return new TestSuite(ZoneIdConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<ZoneId> converter;
 
     public ZoneIdConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class ZoneIdConverterTestCase extends TestCase {
         return ZoneId.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<ZoneId> makeConverter() {
         return new ZoneIdConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/converters/ZoneOffsetConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/converters/ZoneOffsetConverterTestCase.java
index 5b1c97c7..74faacd2 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/converters/ZoneOffsetConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/converters/ZoneOffsetConverterTestCase.java
@@ -35,7 +35,7 @@ public class ZoneOffsetConverterTestCase extends TestCase {
         return new TestSuite(ZoneOffsetConverterTestCase.class);
     }
 
-    private Converter converter = null;
+    private Converter<ZoneOffset> converter = null;
 
     public ZoneOffsetConverterTestCase(final String name) {
         super(name);
@@ -45,7 +45,7 @@ public class ZoneOffsetConverterTestCase extends TestCase {
         return ZoneOffset.class;
     }
 
-    protected Converter makeConverter() {
+    protected Converter<ZoneOffset> makeConverter() {
         return new ZoneOffsetConverter();
     }
 
diff --git 
a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
index 98a6d7bb..5f6cbe5f 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanificationTestCase.java
@@ -197,12 +197,12 @@ public class LocaleBeanificationTestCase extends TestCase 
{
                     signal.setSignal(3);
                     LocaleConvertUtils.register(new LocaleConverter<Integer>() 
{
                         @Override
-                        public Integer convert(final Class<Integer> type, 
final Object value) {
+                        public <R> R convert(final Class<R> type, final Object 
value) {
                             return 
ConvertUtils.primitiveToWrapper(type).cast(9);
                         }
 
                         @Override
-                        public Integer convert(final Class<Integer> type, 
final Object value, final String pattern) {
+                        public <R> R convert(final Class<R> type, final Object 
value, final String pattern) {
                             return 
ConvertUtils.primitiveToWrapper(type).cast(9);
                         }
                     }, Integer.TYPE, Locale.getDefault());
@@ -225,12 +225,12 @@ public class LocaleBeanificationTestCase extends TestCase 
{
 
         LocaleConvertUtils.register(new LocaleConverter<Integer>() {
             @Override
-            public Integer convert(final Class<Integer> type, final Object 
value) {
+            public <R> R convert(final Class<R> type, final Object value) {
                 return ConvertUtils.primitiveToWrapper(type).cast(5);
             }
 
             @Override
-            public Integer convert(final Class<Integer> type, final Object 
value, final String pattern) {
+            public <R> R convert(final Class<R> type, final Object value, 
final String pattern) {
                 return ConvertUtils.primitiveToWrapper(type).cast(5);
             }
         }, Integer.TYPE, Locale.getDefault());
diff --git 
a/src/test/java/org/apache/commons/beanutils2/memoryleaktests/pojotests/CustomInteger.java
 
b/src/test/java/org/apache/commons/beanutils2/memoryleaktests/pojotests/CustomInteger.java
index 3c4233b6..afccd12d 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/memoryleaktests/pojotests/CustomInteger.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/memoryleaktests/pojotests/CustomInteger.java
@@ -22,6 +22,8 @@ package 
org.apache.commons.beanutils2.memoryleaktests.pojotests;
  */
 public class CustomInteger extends Number {
 
+    private static final long serialVersionUID = 1L;
+
     private final int i;
 
     /**
diff --git 
a/src/test/java/org/apache/commons/beanutils2/sql/converters/SqlDateConverterTestCase.java
 
b/src/test/java/org/apache/commons/beanutils2/sql/converters/SqlDateConverterTestCase.java
index 8c075e24..d6715a24 100644
--- 
a/src/test/java/org/apache/commons/beanutils2/sql/converters/SqlDateConverterTestCase.java
+++ 
b/src/test/java/org/apache/commons/beanutils2/sql/converters/SqlDateConverterTestCase.java
@@ -104,7 +104,7 @@ public class SqlDateConverterTestCase extends 
DateConverterTestBase<Date> {
     public void testDefaultTypeToStringConvert() {
 
         // Create & Configure the Converter
-        final DateTimeConverter converter = makeConverter();
+        final DateTimeConverter<Date> converter = makeConverter();
         converter.setUseLocaleFormat(false);
 
         // Valid String --> java.sql.Date Conversion

Reply via email to