Fixing jdbc code: correct PreparedStatement closing

Change-Id: I4c1f8079bdab7181069f3784fb09029a6748a3db
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
index bf488e3..e02feaa 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
@@ -43,6 +43,7 @@
 
 import java.io.IOException;
 import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Collections;
 
@@ -101,7 +102,17 @@
 
         // Prepare the account_group_includes query
         PreparedStatement stmt = ((JdbcSchema) db).getConnection().
-            prepareStatement("SELECT * FROM account_group_includes WHERE group_id = ?");
+            prepareStatement("SELECT COUNT(1) FROM account_group_includes WHERE group_id = ?");
+        boolean isAccountGroupEmpty = false;
+        try {
+          stmt.setInt(1, sc.batchUsersGroupId.get());
+          ResultSet rs = stmt.executeQuery();
+          if (rs.next()) {
+            isAccountGroupEmpty = rs.getInt(1) == 0;
+          }
+        } finally {
+          stmt.close();
+        }
 
         for (String name : createGroupList) {
           AccountGroup.NameKey key = new AccountGroup.NameKey(name);
@@ -125,10 +136,10 @@
         }
 
         AccountGroup batch = db.accountGroups().get(sc.batchUsersGroupId);
-        stmt.setInt(1, sc.batchUsersGroupId.get());
+
         if (batch != null
             && db.accountGroupMembers().byGroup(sc.batchUsersGroupId).toList().isEmpty()
-            &&  stmt.executeQuery().first() != false) {
+            && !isAccountGroupEmpty) {
           // If the batch user group is not used, delete it.
           //
           db.accountGroups().delete(Collections.singleton(batch));