This is an automated email from the ASF dual-hosted git repository. ngangam pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new e7b2380 HIVE-24499: Throw error when connector driver jar is not in classpath(Saihemanth Gantasala via Naveen Gangam) e7b2380 is described below commit e7b2380375e2a5f284da36d12858271f62fffe0f Author: saihemanth <saihema...@cloudera.com> AuthorDate: Tue May 4 10:51:36 2021 -0700 HIVE-24499: Throw error when connector driver jar is not in classpath(Saihemanth Gantasala via Naveen Gangam) --- .../dataconnector/AbstractDataConnectorProvider.java | 4 +++- .../dataconnector/jdbc/AbstractJDBCConnectorProvider.java | 15 +++++++++------ .../dataconnector/jdbc/DerbySQLConnectorProvider.java | 3 +-- .../dataconnector/jdbc/MySQLConnectorProvider.java | 3 +-- .../dataconnector/jdbc/PostgreSQLConnectorProvider.java | 3 +-- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/AbstractDataConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/AbstractDataConnectorProvider.java index 5375dfd..9a87eb0 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/AbstractDataConnectorProvider.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/AbstractDataConnectorProvider.java @@ -20,10 +20,12 @@ public abstract class AbstractDataConnectorProvider implements IDataConnectorPro protected Object handle = null; protected boolean isOpen = false; protected DataConnector connector = null; + protected String driverClassName = null; - public AbstractDataConnectorProvider(String dbName, DataConnector connector) { + public AbstractDataConnectorProvider(String dbName, DataConnector connector, String driverClassName) { this.scoped_db = dbName; this.connector = connector; + this.driverClassName = driverClassName; } @Override public final void setScope(String scoped_db) { diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java index e53a356..35fda41 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/AbstractJDBCConnectorProvider.java @@ -58,8 +58,8 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto String username = null; String password = null; // TODO convert to byte array - public AbstractJDBCConnectorProvider(String dbName, DataConnector dataConn) { - super(dbName, dataConn); + public AbstractJDBCConnectorProvider(String dbName, DataConnector dataConn, String driverClass) { + super(dbName, dataConn, driverClass); this.type = connector.getType().toUpperCase(); // TODO this.jdbcUrl = connector.getUrl(); this.username = connector.getParameters().get(JDBC_USERNAME); @@ -79,16 +79,19 @@ public abstract class AbstractJDBCConnectorProvider extends AbstractDataConnecto try { warehouse = new Warehouse(MetastoreConf.newMetastoreConf()); } catch (MetaException e) { /* ignore */ } + + try { + Class.forName(driverClassName); + } catch (ClassNotFoundException cnfe) { + LOG.warn("Driver class not found in classpath:" + driverClassName); + throw new RuntimeException("Driver class not found:" + driverClass.getClass().getName(), cnfe); + } } @Override public void open() throws ConnectException { try { - Class.forName(driverClassName); handle = DriverManager.getConnection(jdbcUrl, username, password); isOpen = true; - } catch (ClassNotFoundException cnfe) { - LOG.warn("Driver class not found in classpath:" + driverClassName); - throw new RuntimeException("Driver class not found:" + driverClassName, cnfe); } catch (SQLException sqle) { LOG.warn("Could not connect to remote data source at " + jdbcUrl); throw new ConnectException("Could not connect to remote datasource at " + jdbcUrl + ",cause:" + sqle.getMessage()); diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java index 9830974..21c2887 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/DerbySQLConnectorProvider.java @@ -19,8 +19,7 @@ public class DerbySQLConnectorProvider extends AbstractJDBCConnectorProvider { private static final String DRIVER_CLASS = "org.apache.derby.jdbc.AutoloadedDriver".intern(); public DerbySQLConnectorProvider(String dbName, DataConnector connector) { - super(dbName, connector); - driverClassName = DRIVER_CLASS; + super(dbName, connector, DRIVER_CLASS); } /** diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java index 9b8b434..da89116 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/MySQLConnectorProvider.java @@ -18,8 +18,7 @@ public class MySQLConnectorProvider extends AbstractJDBCConnectorProvider { private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver".intern(); public MySQLConnectorProvider(String dbName, DataConnector dataConn) { - super(dbName, dataConn); - driverClassName = DRIVER_CLASS; + super(dbName, dataConn, DRIVER_CLASS); } /** diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java index 51bc97e..736de46 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/jdbc/PostgreSQLConnectorProvider.java @@ -16,8 +16,7 @@ public class PostgreSQLConnectorProvider extends AbstractJDBCConnectorProvider { private static final String DRIVER_CLASS = "org.postgresql.Driver".intern(); public PostgreSQLConnectorProvider(String dbName, DataConnector dataConn) { - super(dbName, dataConn); - driverClassName = DRIVER_CLASS; + super(dbName, dataConn, DRIVER_CLASS); } /**