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();
}
}