You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2014/06/16 18:00:42 UTC
svn commit: r1602910 -
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java
Author: hashutosh
Date: Mon Jun 16 16:00:42 2014
New Revision: 1602910
URL: http://svn.apache.org/r1602910
Log:
HIVE-7182 : ResultSet is not closed in JDBCStatsPublisher#init() (Steve, Oh via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java?rev=1602910&r1=1602909&r2=1602910&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsPublisher.java Mon Jun 16 16:00:42 2014
@@ -259,6 +259,8 @@ public class JDBCStatsPublisher implemen
*/
@Override
public boolean init(Configuration hconf) {
+ Statement stmt = null;
+ ResultSet rs = null;
try {
this.hiveconf = hconf;
connectionString = HiveConf.getVar(hconf, HiveConf.ConfVars.HIVESTATSDBCONNECTIONSTRING);
@@ -268,23 +270,37 @@ public class JDBCStatsPublisher implemen
DriverManager.setLoginTimeout(timeout);
conn = DriverManager.getConnection(connectionString);
- Statement stmt = conn.createStatement();
+ stmt = conn.createStatement();
stmt.setQueryTimeout(timeout);
// Check if the table exists
DatabaseMetaData dbm = conn.getMetaData();
- ResultSet rs = dbm.getTables(null, null, JDBCStatsUtils.getStatTableName(), null);
+ rs = dbm.getTables(null, null, JDBCStatsUtils.getStatTableName(), null);
boolean tblExists = rs.next();
if (!tblExists) { // Table does not exist, create it
String createTable = JDBCStatsUtils.getCreate("");
- stmt.executeUpdate(createTable);
- stmt.close();
- }
- closeConnection();
+ stmt.executeUpdate(createTable);
+ }
}
} catch (Exception e) {
LOG.error("Error during JDBC initialization. ", e);
return false;
+ } finally {
+ if(rs != null) {
+ try {
+ rs.close();
+ } catch (SQLException e) {
+ // do nothing
+ }
+ }
+ if(stmt != null) {
+ try {
+ stmt.close();
+ } catch (SQLException e) {
+ // do nothing
+ }
+ }
+ closeConnection();
}
return true;
}