Close JDBC objects in try-with-resources

Change-Id: Idb563a70821e4aa3fdfeafc7c055735e41ad1b4d
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java
index 4c2c116..5e0a2f8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/database/DatabaseDeleteHandler.java
@@ -114,22 +114,12 @@
   }
 
   public void delete(Project project) throws OrmException {
-    // TODO(davido): Why not to use 1.7 features?
-    // http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20.3.2
     ReviewDb db = ReviewDbUtil.unwrapDb(dbProvider.get());
     Connection conn = ((JdbcSchema) db).getConnection();
     try {
       conn.setAutoCommit(false);
       try {
-        PreparedStatement changesForProject =
-            conn.prepareStatement("SELECT change_id FROM changes WHERE dest_project_name = ?");
-        changesForProject.setString(1, project.getName());
-        java.sql.ResultSet resultSet = changesForProject.executeQuery();
-        List<Change.Id> changeIds = new ArrayList<>();
-        while (resultSet.next()) {
-          changeIds.add(new Change.Id(resultSet.getInt(1)));
-        }
-        atomicDelete(db, project, changeIds);
+        atomicDelete(db, project, getChangesList(project, conn));
         conn.commit();
       } finally {
         conn.setAutoCommit(true);
@@ -144,6 +134,22 @@
     }
   }
 
+  private List<Change.Id> getChangesList(Project project, Connection conn) throws SQLException {
+    try (PreparedStatement changesForProject =
+        conn.prepareStatement("SELECT change_id FROM changes WHERE dest_project_name = ?")) {
+      changesForProject.setString(1, project.getName());
+      try (java.sql.ResultSet resultSet = changesForProject.executeQuery()) {
+        List<Change.Id> changeIds = new ArrayList<>();
+        while (resultSet.next()) {
+          changeIds.add(new Change.Id(resultSet.getInt(1)));
+        }
+        return changeIds;
+      }
+    } catch (SQLException e) {
+      throw new SQLException("Unable to get list of changes for project " + project.getName(), e);
+    }
+  }
+
   private final void deleteChanges(ReviewDb db, Project.NameKey project, List<Change.Id> changeIds)
       throws OrmException {