diff --git a/src/java/org/apache/sqoop/hive/HiveImport.java b/src/java/org/apache/sqoop/hive/HiveImport.java index 02596a67..07a354ba 100644 --- a/src/java/org/apache/sqoop/hive/HiveImport.java +++ b/src/java/org/apache/sqoop/hive/HiveImport.java @@ -179,6 +179,8 @@ public void importTable(String inputTableName, String outputTableName, } // generate the HQL statements to run. + // reset the connection as it might have timed out + connManager.discardConnection(true); TableDefWriter tableWriter = new TableDefWriter(options, connManager, inputTableName, outputTableName, configuration, !debugMode); diff --git a/src/java/org/apache/sqoop/manager/ConnManager.java b/src/java/org/apache/sqoop/manager/ConnManager.java index 32e736c5..c9e05da4 100644 --- a/src/java/org/apache/sqoop/manager/ConnManager.java +++ b/src/java/org/apache/sqoop/manager/ConnManager.java @@ -484,6 +484,14 @@ public abstract ResultSet readTable(String tableName, String [] columns) */ public abstract Connection getConnection() throws SQLException; + /** + * discard the database connection. + */ + public void discardConnection(boolean doClose) { + throw new UnsupportedOperationException("No discard connection support " + + "for this database"); + } + /** * @return a string identifying the driver class to load for this * JDBC connection type. diff --git a/src/java/org/apache/sqoop/manager/GenericJdbcManager.java b/src/java/org/apache/sqoop/manager/GenericJdbcManager.java index 233e546f..2113a5f5 100644 --- a/src/java/org/apache/sqoop/manager/GenericJdbcManager.java +++ b/src/java/org/apache/sqoop/manager/GenericJdbcManager.java @@ -65,9 +65,12 @@ protected boolean hasOpenConnection() { * connection first. * @param doClose if true, try to close the connection before forgetting it. */ - protected void discardConnection(boolean doClose) throws SQLException { + public void discardConnection(boolean doClose) { if (doClose && hasOpenConnection()) { - this.connection.close(); + try { + this.connection.close(); + } catch(SQLException sqe) { + } } this.connection = null;