Close Review DB using try-with-resources

Change-Id: I3bf89d68af40fe0deecc67449a0a51e97a4ef495
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
index 14b6031..b4aafaa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/ChangeEventListener.java
@@ -125,78 +125,71 @@
     }
 
     try (Repository git = repoManager.openRepository(projectName);
-        RevWalk rw = new RevWalk(git)) {
-      final ReviewDb reviewDb;
+        RevWalk rw = new RevWalk(git);
+        ReviewDb reviewDb = schemaFactory.open()) {
+      Change.Id changeId = new Change.Id(Integer.parseInt(e.change.number));
+      PatchSet.Id psId =
+          new PatchSet.Id(changeId, Integer.parseInt(e.patchSet.number));
+      PatchSet ps = reviewDb.patchSets().get(psId);
+      if (ps == null) {
+        log.warn("Patch set " + psId.get() + " not found.");
+        return;
+      }
 
-      reviewDb = schemaFactory.open();
-      try {
-        Change.Id changeId = new Change.Id(Integer.parseInt(e.change.number));
-        PatchSet.Id psId = new PatchSet.Id(changeId,
-            Integer.parseInt(e.patchSet.number));
-        PatchSet ps = reviewDb.patchSets().get(psId);
-        if (ps == null) {
-          log.warn("Patch set " + psId.get() + " not found.");
-          return;
-        }
+      final Change change = reviewDb.changes().get(psId.getParentKey());
+      if (change == null) {
+        log.warn("Change " + changeId.get() + " not found.");
+        return;
+      }
 
-        final Change change = reviewDb.changes().get(psId.getParentKey());
-        if (change == null) {
-          log.warn("Change " + changeId.get() + " not found.");
-          return;
-        }
+      Set<String> reviewers = findReviewers(sections, reviewDb, change);
+      if (reviewers.isEmpty()) {
+        return;
+      }
 
-        Set<String> reviewers = findReviewers(sections, reviewDb, change);
-        if (reviewers.isEmpty()) {
-          return;
-        }
+      final Runnable task =
+          reviewersFactory.create(change,
+              toAccounts(reviewers, projectName, e.uploader.email));
 
-        final Runnable task = reviewersFactory.create(change,
-            toAccounts(reviewers, projectName, e.uploader.email));
+      workQueue.getDefaultQueue().submit(new Runnable() {
+        @Override
+        public void run() {
+          RequestContext old = tl.setContext(new RequestContext() {
 
-        workQueue.getDefaultQueue().submit(new Runnable() {
-          @Override
-          public void run() {
-            RequestContext old = tl.setContext(new RequestContext() {
+            @Override
+            public CurrentUser getCurrentUser() {
+              return identifiedUserFactory.create(change.getOwner());
+            }
 
-              @Override
-              public CurrentUser getCurrentUser() {
-                return identifiedUserFactory.create(change.getOwner());
-              }
-
-              @Override
-              public Provider<ReviewDb> getReviewDbProvider() {
-                return new Provider<ReviewDb>() {
-                  @Override
-                  public ReviewDb get() {
-                    if (db == null) {
-                      try {
-                        db = schemaFactory.open();
-                      } catch (OrmException e) {
-                        throw new ProvisionException("Cannot open ReviewDb", e);
-                      }
+            @Override
+            public Provider<ReviewDb> getReviewDbProvider() {
+              return new Provider<ReviewDb>() {
+                @Override
+                public ReviewDb get() {
+                  if (db == null) {
+                    try {
+                      db = schemaFactory.open();
+                    } catch (OrmException e) {
+                      throw new ProvisionException("Cannot open ReviewDb", e);
                     }
-                    return db;
                   }
-                };
-              }
-            });
-            try {
-              task.run();
-            } finally {
-              tl.setContext(old);
-              if (db != null) {
-                db.close();
-                db = null;
-              }
+                  return db;
+                }
+              };
+            }
+          });
+          try {
+            task.run();
+          } finally {
+            tl.setContext(old);
+            if (db != null) {
+              db.close();
+              db = null;
             }
           }
-        });
-      } catch (OrmException | QueryParseException x) {
-        log.error(x.getMessage(), x);
-      } finally {
-        reviewDb.close();
-      }
-    } catch (OrmException | IOException x) {
+        }
+      });
+    } catch (OrmException | IOException | QueryParseException x) {
       log.error(x.getMessage(), x);
     }
   }