Make disableDb return AutoCloseable
Change-Id: I18308dcd4c24ede3d8fb4328cfc7b5664dc9426d
diff --git a/java/com/google/gerrit/acceptance/AbstractDaemonTest.java b/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
index 8d05ea1..86c57c9 100644
--- a/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
+++ b/java/com/google/gerrit/acceptance/AbstractDaemonTest.java
@@ -799,14 +799,16 @@
return accountState.get();
}
- protected Context disableDb() {
+ protected AutoCloseable disableNoteDb() {
changeNotesArgs.failOnLoadForTest.set(true);
- return atrScope.disableDb();
- }
-
- protected void enableDb(Context preDisableContext) {
- changeNotesArgs.failOnLoadForTest.set(false);
- atrScope.set(preDisableContext);
+ Context oldContext = atrScope.disableNoteDb();
+ return new AutoCloseable() {
+ @Override
+ public void close() throws Exception {
+ changeNotesArgs.failOnLoadForTest.set(false);
+ atrScope.set(oldContext);
+ }
+ };
}
protected void disableChangeIndexWrites() {
diff --git a/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java b/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
index 8420ff2..50536d8 100644
--- a/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
+++ b/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
@@ -145,7 +145,10 @@
return current.get();
}
- public Context disableDb() {
+ /**
+ * Disables read and write access to NoteDb and returns the context prior to that modification.
+ */
+ public Context disableNoteDb() {
Context old = current.get();
Context ctx = new Context(old.session, old.user, old.created);
diff --git a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
index 81acb3f..31de4cf 100644
--- a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -58,7 +58,6 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.gerrit.acceptance.AbstractDaemonTest;
-import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
import com.google.gerrit.acceptance.ChangeIndexedCounter;
import com.google.gerrit.acceptance.GerritConfig;
import com.google.gerrit.acceptance.GitUtil;
@@ -2735,8 +2734,7 @@
createChange();
requestScopeOperations.setApiUser(user.getId());
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
assertThat(
gApi.changes()
.query()
@@ -2747,8 +2745,6 @@
.withOption(REVIEWED)
.get())
.hasSize(2);
- } finally {
- enableDb(ctx);
}
}
diff --git a/javatests/com/google/gerrit/acceptance/api/revision/RobotCommentsIT.java b/javatests/com/google/gerrit/acceptance/api/revision/RobotCommentsIT.java
index 90f0a2a..b00837d 100644
--- a/javatests/com/google/gerrit/acceptance/api/revision/RobotCommentsIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/revision/RobotCommentsIT.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.AbstractDaemonTest;
-import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
import com.google.gerrit.acceptance.GerritConfig;
import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.extensions.api.changes.ReviewInput;
@@ -923,16 +922,13 @@
addRobotComment(r2.getChangeId(), createRobotCommentInputWithMandatoryFields());
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
ChangeInfo result = Iterables.getOnlyElement(query(r2.getChangeId()));
// currently, we create all robot comments as 'resolved' by default.
// if we allow users to resolve a robot comment, then this test should
// be modified.
assertThat(result.unresolvedCommentCount).isEqualTo(0);
assertThat(result.totalCommentCount).isEqualTo(1);
- } finally {
- enableDb(ctx);
}
}
diff --git a/javatests/com/google/gerrit/acceptance/git/ChangeRefCacheIT.java b/javatests/com/google/gerrit/acceptance/git/ChangeRefCacheIT.java
index 3939c67..10e701e 100644
--- a/javatests/com/google/gerrit/acceptance/git/ChangeRefCacheIT.java
+++ b/javatests/com/google/gerrit/acceptance/git/ChangeRefCacheIT.java
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableList;
import com.google.gerrit.acceptance.AbstractDaemonTest;
-import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
import com.google.gerrit.reviewdb.client.PatchSet;
@@ -67,15 +66,12 @@
ChangeData change = createChange().getChange();
// TODO(hiesel) Rework as AutoClosable. Here and below.
changeRefCache.resetBootstrappedProjects();
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
assertUploadPackRefs(
"HEAD",
"refs/heads/master",
RefNames.changeMetaRef(change.getId()),
change.currentPatchSet().getId().toRefName());
- } finally {
- enableDb(ctx);
}
}
@@ -87,29 +83,22 @@
public void serveResultsFromCacheAfterInitialBootstrap() throws Exception {
ChangeData change = createChange().getChange();
changeRefCache.resetBootstrappedProjects();
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
assertUploadPackRefs(
"HEAD",
"refs/heads/master",
RefNames.changeMetaRef(change.getId()),
change.currentPatchSet().getId().toRefName());
- } finally {
- enableDb(ctx);
}
- // No change since our first call, so this time we don't bootstrap or touch NoteDb
- AcceptanceTestRequestScope.Context ctx2 = disableDb();
- try {
- try (AutoCloseable ignored = disableChangeIndex()) {
- assertUploadPackRefs(
- "HEAD",
- "refs/heads/master",
- RefNames.changeMetaRef(change.getId()),
- change.currentPatchSet().getId().toRefName());
- }
- } finally {
- enableDb(ctx2);
+ // No change since our first call, so this time we don't bootstrap or touch the NoteDb
+ try (AutoCloseable ignored = disableChangeIndex();
+ AutoCloseable ignored2 = disableNoteDb()) {
+ assertUploadPackRefs(
+ "HEAD",
+ "refs/heads/master",
+ RefNames.changeMetaRef(change.getId()),
+ change.currentPatchSet().getId().toRefName());
}
}
@@ -120,17 +109,14 @@
@Test
public void useIndexForBootstrappingAndDbForDeltaReload() throws Exception {
ChangeData change1 = createChange().getChange();
- AcceptanceTestRequestScope.Context ctx = disableDb();
// Bootstrap: No NoteDb access as we expect it to use the index.
changeRefCache.resetBootstrappedProjects();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
assertUploadPackRefs(
"HEAD",
"refs/heads/master",
RefNames.changeMetaRef(change1.getId()),
change1.currentPatchSet().getId().toRefName());
- } finally {
- enableDb(ctx);
}
// Delta reload: No index access as we expect it to use NoteDb.
ChangeData change2 = createChange().getChange();
@@ -157,17 +143,14 @@
.to("refs/for/master")
.getChange();
- AcceptanceTestRequestScope.Context ctx = disableDb();
// Bootstrap: No NoteDb access as we expect it to use the index.
changeRefCache.resetBootstrappedProjects();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
assertUploadPackRefs(
"HEAD",
"refs/heads/master",
RefNames.changeMetaRef(change1.getId()),
change1.currentPatchSet().getId().toRefName());
- } finally {
- enableDb(ctx);
}
// Delta reload: No index access as we expect it to use NoteDb.
@@ -201,16 +184,13 @@
.to("refs/for/master")
.getChange();
// Bootstrap: No NoteDb access as we expect it to use the index.
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
changeRefCache.resetBootstrappedProjects();
assertUploadPackRefs(
"HEAD",
"refs/heads/master",
RefNames.changeMetaRef(change1.getId()),
change1.currentPatchSet().getId().toRefName());
- } finally {
- enableDb(ctx);
}
try (AutoCloseable ignored = disableChangeIndex()) {
diff --git a/javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java b/javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java
index 13c76e3..b5d3838 100644
--- a/javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java
+++ b/javatests/com/google/gerrit/acceptance/rest/change/ChangeReviewersByEmailIT.java
@@ -21,7 +21,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.AbstractDaemonTest;
-import com.google.gerrit.acceptance.AcceptanceTestRequestScope.Context;
import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.RestResponse;
import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
@@ -323,14 +322,11 @@
input.state = state;
gApi.changes().id(r.getChangeId()).addReviewer(input);
- Context oldCtx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
ChangeInfo info =
Iterables.getOnlyElement(
gApi.changes().query(r.getChangeId()).withOption(DETAILED_LABELS).get());
assertThat(info.reviewers).isEqualTo(ImmutableMap.of(state, ImmutableList.of(acc)));
- } finally {
- enableDb(oldCtx);
}
}
}
diff --git a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
index 0a4d972..d5ceb9a 100644
--- a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
@@ -27,7 +27,6 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.gerrit.acceptance.AbstractDaemonTest;
-import com.google.gerrit.acceptance.AcceptanceTestRequestScope;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
@@ -734,8 +733,7 @@
assertThat(comments.get(FILE_NAME)).hasSize(1);
addComment(result, "comment 2", false, true, comments.get(FILE_NAME).get(0).id);
- AcceptanceTestRequestScope.Context ctx = disableDb();
- try {
+ try (AutoCloseable ignored = disableNoteDb()) {
ChangeInfo changeInfo1 = Iterables.getOnlyElement(query(changeId1));
ChangeInfo changeInfo2 = Iterables.getOnlyElement(query(changeId2));
ChangeInfo changeInfo3 = Iterables.getOnlyElement(query(changeId3));
@@ -745,8 +743,6 @@
assertThat(changeInfo2.totalCommentCount).isEqualTo(2);
assertThat(changeInfo3.unresolvedCommentCount).isEqualTo(1);
assertThat(changeInfo3.totalCommentCount).isEqualTo(2);
- } finally {
- enableDb(ctx);
}
}