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