in src/main/java/org/apache/commons/dbutils/DbUtils.java [258:291]
public static boolean loadDriver(final ClassLoader classLoader, final String driverClassName) {
try {
final Class<?> loadedClass = classLoader.loadClass(driverClassName);
if (!Driver.class.isAssignableFrom(loadedClass)) {
return false;
}
@SuppressWarnings("unchecked") // guarded by previous check
final
Class<Driver> driverClass = (Class<Driver>) loadedClass;
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);
}
try {
final Driver driver = driverConstructor.newInstance();
registerDriver(new DriverProxy(driver));
} finally {
driverConstructor.setAccessible(isConstructorAccessible);
}
return true;
} catch (final Exception e) {
return false;
}
}