You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2021/05/21 04:16:48 UTC
[hive] branch master updated: HIVE-24499: Throw error when
connector driver jar is not in classpath(Saihemanth Gantasala via Naveen
Gangam)
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 <sa...@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);
}
/**