From 5d99a6d917584ebbc3373de7b7cb3703afb4c77b Mon Sep 17 00:00:00 2001 From: Caden Peters Date: Sat, 2 Nov 2019 22:20:01 -0500 Subject: [PATCH] Load real driver class before use Add loadRealDriver method to load the class indicated by realDriverClass. Throw IllegalStateException if the class does not exist. --- .../sql/AWSSecretsManagerDriver.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/amazonaws/secretsmanager/sql/AWSSecretsManagerDriver.java b/src/main/java/com/amazonaws/secretsmanager/sql/AWSSecretsManagerDriver.java index 43170fa..8f653de 100644 --- a/src/main/java/com/amazonaws/secretsmanager/sql/AWSSecretsManagerDriver.java +++ b/src/main/java/com/amazonaws/secretsmanager/sql/AWSSecretsManagerDriver.java @@ -176,6 +176,20 @@ private void setProperties() { this.realDriverClass = this.config.getStringPropertyWithDefault("realDriverClass", getDefaultDriverClass()); } + /** + * Loads the real driver. + * + * @throws IllegalStateException When there is no class with the name + * realDriverClass + */ + private void loadRealDriver() { + try { + Class.forName(this.realDriverClass); + } catch (ClassNotFoundException e) { + throw new IllegalStateException("Could not load real driver with name, \"" + this.realDriverClass + "\".", e); + } + } + /** * Called when the driver is deregistered to cleanup resources. */ @@ -234,6 +248,7 @@ private String unwrapUrl(String jdbcUrl) { * realDriverClass */ public Driver getWrappedDriver() { + loadRealDriver(); Enumeration availableDrivers = DriverManager.getDrivers(); while (availableDrivers.hasMoreElements()) { Driver driver = availableDrivers.nextElement();