Convert Repository to AutoCloseable

Change-Id: Icbff208ae9bbe07ceab27559f26bc8bd30987d14
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
index a308469..0452273 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
@@ -36,7 +36,6 @@
 import com.google.inject.Provider;
 import com.google.inject.ProvisionException;
 
-import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -100,85 +99,74 @@
       return;
     }
 
-    Repository git;
-    try {
-      git = repoManager.openRepository(projectName);
-    } catch (RepositoryNotFoundException x) {
-      log.error(x.getMessage(), x);
-      return;
-    } catch (IOException x) {
-      log.error(x.getMessage(), x);
-      return;
-    }
+    try (final Repository git = repoManager.openRepository(projectName)) {
+      try (final RevWalk rw = new RevWalk(git)) {
+        final ReviewDb 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;
+          }
 
-    try (final RevWalk rw = new RevWalk(git)) {
-      final ReviewDb 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;
-        }
+          final RevCommit commit =
+              rw.parseCommit(ObjectId.fromString(e.patchSet.revision));
 
-        final RevCommit commit =
-            rw.parseCommit(ObjectId.fromString(e.patchSet.revision));
+          final Runnable task =
+              reviewersByBlameFactory.create(commit, change, ps, maxReviewers, git);
 
-        final Runnable task =
-            reviewersByBlameFactory.create(commit, change, ps, maxReviewers, git);
+          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;
                     }
-                    return db;
-                  }
-                };
-              }
-            });
-            try {
-              task.run();
-            } finally {
-              tl.setContext(old);
-              if (db != null) {
-                db.close();
-                db = null;
+                  };
+                }
+              });
+              try {
+                task.run();
+              } finally {
+                tl.setContext(old);
+                if (db != null) {
+                  db.close();
+                  db = null;
+                }
               }
             }
-          }
-        });
-      } finally {
-        reviewDb.close();
+          });
+        } finally {
+          reviewDb.close();
+        }
       }
     } catch (OrmException|IOException x) {
       log.error(x.getMessage(), x);
-    } finally {
-      git.close();
     }
   }