Repository: sqoop Updated Branches: refs/heads/sqoop2 dccaf0b25 -> 0756d1366
SQOOP-1320. Sqoop2: Log entire SQLExceptions chain in GenericJdbcExecutor (Jaroslav Cecho via Hari Shreedharan) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/0756d136 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/0756d136 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/0756d136 Branch: refs/heads/sqoop2 Commit: 0756d13662913a7c2df1a0a4d23cd50175dc42f4 Parents: dccaf0b Author: Hari Shreedharan <[email protected]> Authored: Mon May 12 12:23:12 2014 -0700 Committer: Hari Shreedharan <[email protected]> Committed: Mon May 12 12:23:12 2014 -0700 ---------------------------------------------------------------------- .../connector/jdbc/GenericJdbcExecutor.java | 65 +++++++++++--------- 1 file changed, 37 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/0756d136/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java ---------------------------------------------------------------------- diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java index 9fd2e4f..5dc3c0b 100644 --- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java +++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java @@ -48,8 +48,8 @@ public class GenericJdbcExecutor { GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0000, driver, e); } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0001, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0001, e); } } @@ -60,8 +60,8 @@ public class GenericJdbcExecutor { return statement.executeQuery(sql); } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -69,6 +69,7 @@ public class GenericJdbcExecutor { try { connection.setAutoCommit(autoCommit); } catch (SQLException e) { + logSQLException(e); throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -104,23 +105,21 @@ public class GenericJdbcExecutor { GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0018); } } catch(SQLException e) { - LOG.error("Got SQLException while migrating data from: " + fromTable + - " to: " + toTable, e); - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0018, e); + logSQLException(e, "Got SQLException while migrating data from: " + fromTable + " to: " + toTable); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0018, e); } finally { if(stmt != null) { try { stmt.close(); } catch(SQLException e) { - LOG.warn("Got SQLException at the time of closing statement.", e); + logSQLException(e, "Got SQLException at the time of closing statement."); } } if(oldAutoCommit != null) { try { connection.setAutoCommit(oldAutoCommit); } catch(SQLException e) { - LOG.warn("Got SQLException while setting autoCommit mode.", e); + logSQLException(e, "Got SQLException while setting autoCommit mode."); } } } @@ -139,7 +138,7 @@ public class GenericJdbcExecutor { if(resultSet != null) resultSet.close(); } catch(SQLException e) { - LOG.warn("Got SQLException while closing resultset.", e); + logSQLException(e, "Got SQLException while closing resultset."); } } } @@ -151,8 +150,8 @@ public class GenericJdbcExecutor { statement.executeUpdate(sql); } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -162,8 +161,8 @@ public class GenericJdbcExecutor { ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -174,8 +173,8 @@ public class GenericJdbcExecutor { } preparedStatement.addBatch(); } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -186,8 +185,8 @@ public class GenericJdbcExecutor { connection.commit(); } } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -197,8 +196,8 @@ public class GenericJdbcExecutor { preparedStatement.close(); } } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); } } @@ -216,8 +215,8 @@ public class GenericJdbcExecutor { } } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); } } @@ -237,8 +236,8 @@ public class GenericJdbcExecutor { return columns; } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); } } @@ -256,8 +255,8 @@ public class GenericJdbcExecutor { } } catch (SQLException e) { - throw new SqoopException( - GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); + logSQLException(e); + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0003, e); } } @@ -296,8 +295,18 @@ public class GenericJdbcExecutor { connection.close(); } catch (SQLException e) { - // TODO: Log the exception + logSQLException(e); } } + private void logSQLException(SQLException e) { + logSQLException(e, "Caught SQLException:"); + } + + private void logSQLException(SQLException e, String message) { + LOG.error(message, e); + if(e.getNextException() != null) { + logSQLException(e.getNextException(), "Caused by:"); + } + } }
