Correct deprecated methods to use advised call per javadoc.
Suppress unchecked warning when creating an enum from String.
diff --git a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
index 9ccc241..1301fec 100644
--- a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
+++ b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
@@ -407,13 +407,9 @@
*/
protected <T> T newInstance(final Class<T> c) throws SQLException {
try {
- return c.newInstance();
+ return c.getDeclaredConstructor().newInstance();
- } catch (final InstantiationException e) {
- throw new SQLException(
- "Cannot create " + c.getName() + ": " + e.getMessage());
-
- } catch (final IllegalAccessException e) {
+ } catch (final IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException e) {
throw new SQLException(
"Cannot create " + c.getName() + ": " + e.getMessage());
}
diff --git a/src/main/java/org/apache/commons/dbutils/DbUtils.java b/src/main/java/org/apache/commons/dbutils/DbUtils.java
index 7ad90c6..8d716f9 100644
--- a/src/main/java/org/apache/commons/dbutils/DbUtils.java
+++ b/src/main/java/org/apache/commons/dbutils/DbUtils.java
@@ -215,6 +215,9 @@
final Constructor<Driver> driverConstructor = driverClass.getConstructor();
// make Constructor accessible if it is private
+ @SuppressWarnings("deprecation")
+ // TODO This is deprecated in Java9 and canAccess() should be used. Adding suppression for building on
+ // later JDKs without a warning.
final boolean isConstructorAccessible = driverConstructor.isAccessible();
if (!isConstructorAccessible) {
driverConstructor.setAccessible(true);
diff --git a/src/main/java/org/apache/commons/dbutils/handlers/properties/StringEnumPropertyHandler.java b/src/main/java/org/apache/commons/dbutils/handlers/properties/StringEnumPropertyHandler.java
index 8af56ea..bd0eae9 100644
--- a/src/main/java/org/apache/commons/dbutils/handlers/properties/StringEnumPropertyHandler.java
+++ b/src/main/java/org/apache/commons/dbutils/handlers/properties/StringEnumPropertyHandler.java
@@ -28,6 +28,7 @@
}
@Override
+ @SuppressWarnings("unchecked")
public Object apply(final Class<?> parameter, final Object value) {
return Enum.valueOf(parameter.asSubclass(Enum.class), (String) value);
}