Vadim Spector created SENTRY-1377:
-------------------------------------

             Summary: improve handling of failures, both in tests and 
after-test cleanup, in TestHDFSIntegration.java
                 Key: SENTRY-1377
                 URL: https://issues.apache.org/jira/browse/SENTRY-1377
             Project: Sentry
          Issue Type: Test
          Components: Sentry
            Reporter: Vadim Spector
            Priority: Minor


1. TestHDFSIntegration.java should provide best-attempt cleanup in 
cleanAfterTest() method. Currently, if any cleanup operation fails, the rest of 
cleanup code is not executed. It does not matter only if all tests succeed. If 
some do not, short-circuiting some cleanup logic tends to cascade secondary 
failures which complicate troubleshooting.

2. Test methods would short-circuit closing database Connection's and 
Statement's if the test logic fails. Moreover, some test methods have multiple 
initializations of Connection ans Statement, but only one stmt.close(); 
conn.close(); pair at the end. Correct pattern would be for each distinct 
{Connection,Statement} pair would be:

conn = null;
stmt = null;
try {
..... test logic here, including conn and stmt initialization ...
} finally {
  safeClose(conn, stmt);
}

were
private static safeClose(Connection conn, Statement stmt) {
  if (stmt != null) try { stmt.close(); } catch (Exception ignore) {}
  if (conn != null) try { conn.close(); } catch (Exception ignore) {}
}

Testing jdbc driver implementation is not in the scope of HDFS integration 
tests, so ignoring Connection.close() and Statement.close() failures should not 
be a concern for this test class.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to