Fix jdbc code: Both PreparedStatements must be closed in any case
Change-Id: Ie25aff78e9f74497a36faca97a38737c0d8f4b73
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_77.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_77.java
index 472bc25..80639d6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_77.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_77.java
@@ -199,51 +199,40 @@
static LegacyLabelTypes getLegacyTypes(ReviewDb db) throws SQLException {
List<LegacyLabelType> types = Lists.newArrayListWithCapacity(2);
- Statement catStmt = null;
- PreparedStatement valStmt = null;
- ResultSet catRs = null;
+ Statement catStmt = ((JdbcSchema) db).getConnection().createStatement();
try {
- catStmt = ((JdbcSchema) db).getConnection().createStatement();
- catRs = catStmt.executeQuery(
+ ResultSet catRs = catStmt.executeQuery(
"SELECT category_id, name, abbreviated_name, function_name, "
+ " copy_min_score"
+ " FROM approval_categories"
+ " ORDER BY position, name");
- valStmt = ((JdbcSchema) db).getConnection().prepareStatement(
- "SELECT value, name"
- + " FROM approval_category_values"
- + " WHERE category_id = ?");
- while (catRs.next()) {
- String id = catRs.getString("category_id");
- valStmt.setString(1, id);
- List<LabelValue> values = Lists.newArrayListWithCapacity(5);
- ResultSet valRs = valStmt.executeQuery();
- try {
+ PreparedStatement valStmt = ((JdbcSchema) db).getConnection().prepareStatement(
+ "SELECT value, name"
+ + " FROM approval_category_values"
+ + " WHERE category_id = ?");
+ try {
+ while (catRs.next()) {
+ String id = catRs.getString("category_id");
+ valStmt.setString(1, id);
+ List<LabelValue> values = Lists.newArrayListWithCapacity(5);
+ ResultSet valRs = valStmt.executeQuery();
while (valRs.next()) {
values.add(new LabelValue(
valRs.getShort("value"), valRs.getString("name")));
}
- } finally {
- valRs.close();
+ LegacyLabelType type =
+ new LegacyLabelType(getLabelName(catRs.getString("name")), values);
+ type.setId(id);
+ type.setAbbreviation(catRs.getString("abbreviated_name"));
+ type.setFunctionName(catRs.getString("function_name"));
+ type.setCopyMinScore("Y".equals(catRs.getString("copy_min_score")));
+ types.add(type);
}
- LegacyLabelType type =
- new LegacyLabelType(getLabelName(catRs.getString("name")), values);
- type.setId(id);
- type.setAbbreviation(catRs.getString("abbreviated_name"));
- type.setFunctionName(catRs.getString("function_name"));
- type.setCopyMinScore("Y".equals(catRs.getString("copy_min_score")));
- types.add(type);
- }
- } finally {
- if (valStmt != null) {
+ } finally {
valStmt.close();
}
- if (catRs != null) {
- catRs.close();
- }
- if (catStmt != null) {
- catStmt.close();
- }
+ } finally {
+ catStmt.close();
}
return new LegacyLabelTypes(types);
}