Use a common function to unwrap ReviewDb
Instead of scattered private function provide a common version in ReviewDbUtil. Change-Id: I5caa4cfb1deaab610959c6871439914009c21135
This commit is contained in:
parent
33cbdf345d
commit
c298aa6da0
|
@ -45,6 +45,7 @@ import com.google.gerrit.reviewdb.client.PatchSet;
|
|||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.RevId;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
|
||||
import com.google.gerrit.server.ChangeUtil;
|
||||
import com.google.gerrit.server.PatchLineCommentsUtil;
|
||||
import com.google.gerrit.server.change.PostReview;
|
||||
|
@ -60,7 +61,6 @@ import com.google.gerrit.server.notedb.ChangeNotes;
|
|||
import com.google.gerrit.server.notedb.NoteDbChangeState;
|
||||
import com.google.gerrit.server.notedb.NoteDbUpdateManager;
|
||||
import com.google.gerrit.server.notedb.TestChangeRebuilderWrapper;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gerrit.testutil.ConfigSuite;
|
||||
import com.google.gerrit.testutil.NoteDbChecker;
|
||||
import com.google.gerrit.testutil.NoteDbMode;
|
||||
|
@ -264,13 +264,13 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
|
||||
// First write doesn't create the ref, but rebuilding works.
|
||||
checker.assertNoChangeRef(project, id);
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isNull();
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isNull();
|
||||
checker.rebuildAndCheckChanges(id);
|
||||
|
||||
// Now that there is a ref, writes are "turned on" for this change, and
|
||||
// NoteDb stays up to date without explicit rebuilding.
|
||||
gApi.changes().id(id.get()).topic(name("new-topic"));
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isNotNull();
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isNotNull();
|
||||
checker.checkChanges(id);
|
||||
}
|
||||
|
||||
|
@ -323,13 +323,13 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
Change.Id id = r.getPatchSetId().getParentKey();
|
||||
|
||||
ObjectId changeMetaId = getMetaRef(project, changeMetaRef(id));
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
changeMetaId.name());
|
||||
|
||||
putDraft(user, id, 1, "comment by user");
|
||||
ObjectId userDraftsId = getMetaRef(
|
||||
allUsers, refsDraftComments(id, user.getId()));
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
changeMetaId.name()
|
||||
+ "," + user.getId() + "=" + userDraftsId.name());
|
||||
|
||||
|
@ -337,7 +337,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
ObjectId adminDraftsId = getMetaRef(
|
||||
allUsers, refsDraftComments(id, admin.getId()));
|
||||
assertThat(admin.getId().get()).isLessThan(user.getId().get());
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
changeMetaId.name()
|
||||
+ "," + admin.getId() + "=" + adminDraftsId.name()
|
||||
+ "," + user.getId() + "=" + userDraftsId.name());
|
||||
|
@ -345,7 +345,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
putDraft(admin, id, 2, "revised comment by admin");
|
||||
adminDraftsId = getMetaRef(
|
||||
allUsers, refsDraftComments(id, admin.getId()));
|
||||
assertThat(unwrapDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
assertThat(getUnwrappedDb().changes().get(id).getNoteDbState()).isEqualTo(
|
||||
changeMetaId.name()
|
||||
+ "," + admin.getId() + "=" + adminDraftsId.name()
|
||||
+ "," + user.getId() + "=" + userDraftsId.name());
|
||||
|
@ -374,7 +374,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
// Check that the bundles are equal.
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(
|
||||
plcUtil, notesFactory.create(dbProvider.get(), project, id));
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
}
|
||||
|
||||
|
@ -425,7 +425,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
// Check that the bundles are equal.
|
||||
ChangeNotes notes = notesFactory.create(dbProvider.get(), project, id);
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(plcUtil, notes);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
assertThat(
|
||||
Iterables.transform(
|
||||
|
@ -464,7 +464,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
// Check that the bundles are equal.
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(
|
||||
plcUtil, notesFactory.create(dbProvider.get(), project, id));
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
}
|
||||
|
||||
|
@ -494,7 +494,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
assertChangeUpToDate(false, id);
|
||||
assertThat(getMetaRef(project, changeMetaRef(id))).isEqualTo(oldMetaId);
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(plcUtil, notes);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
assertChangeUpToDate(false, id);
|
||||
|
||||
|
@ -536,7 +536,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
// Not up to date, but the actual returned state matches anyway.
|
||||
assertDraftsUpToDate(false, id, user);
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(plcUtil, notes);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
|
||||
// Another rebuild attempt succeeds
|
||||
|
@ -564,7 +564,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
setNotesMigration(false, false);
|
||||
putDraft(user, id, 1, "second comment by user");
|
||||
|
||||
ReviewDb db = unwrapDb();
|
||||
ReviewDb db = getUnwrappedDb();
|
||||
Change c = db.changes().get(id);
|
||||
// Leave change meta ID alone so DraftCommentNotes does the rebuild.
|
||||
NoteDbChangeState bogusState = new NoteDbChangeState(
|
||||
|
@ -591,7 +591,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
assertChangeUpToDate(true, id);
|
||||
assertDraftsUpToDate(false, id, user);
|
||||
ChangeBundle actual = ChangeBundle.fromNotes(plcUtil, notes);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(unwrapDb(), id);
|
||||
ChangeBundle expected = ChangeBundle.fromReviewDb(getUnwrappedDb(), id);
|
||||
assertThat(actual.differencesFrom(expected)).isEmpty();
|
||||
|
||||
// Another rebuild attempt succeeds
|
||||
|
@ -950,7 +950,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
}
|
||||
|
||||
private void setInvalidNoteDbState(Change.Id id) throws Exception {
|
||||
ReviewDb db = unwrapDb();
|
||||
ReviewDb db = getUnwrappedDb();
|
||||
Change c = db.changes().get(id);
|
||||
// In reality we would have NoteDb writes enabled, which would write a real
|
||||
// state into this field. For tests however, we turn NoteDb writes off, so
|
||||
|
@ -963,7 +963,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
private void assertChangeUpToDate(boolean expected, Change.Id id)
|
||||
throws Exception {
|
||||
try (Repository repo = repoManager.openRepository(project)) {
|
||||
Change c = unwrapDb().changes().get(id);
|
||||
Change c = getUnwrappedDb().changes().get(id);
|
||||
assertThat(c).isNotNull();
|
||||
assertThat(c.getNoteDbState()).isNotNull();
|
||||
assertThat(NoteDbChangeState.parse(c).isChangeUpToDate(
|
||||
|
@ -975,7 +975,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
private void assertDraftsUpToDate(boolean expected, Change.Id changeId,
|
||||
TestAccount account) throws Exception {
|
||||
try (Repository repo = repoManager.openRepository(allUsers)) {
|
||||
Change c = unwrapDb().changes().get(changeId);
|
||||
Change c = getUnwrappedDb().changes().get(changeId);
|
||||
assertThat(c).isNotNull();
|
||||
assertThat(c.getNoteDbState()).isNotNull();
|
||||
NoteDbChangeState state = NoteDbChangeState.parse(c);
|
||||
|
@ -1052,11 +1052,8 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
|
|||
return msg;
|
||||
}
|
||||
|
||||
private ReviewDb unwrapDb() {
|
||||
private ReviewDb getUnwrappedDb() {
|
||||
ReviewDb db = dbProvider.get();
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
return ReviewDbUtil.unwrapDb(db);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ import com.google.gerrit.reviewdb.client.Change;
|
|||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.RefNames;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import static com.google.gerrit.reviewdb.server.ReviewDbUtil.unwrapDb;
|
||||
import com.google.gerrit.server.change.ChangeResource;
|
||||
import com.google.gerrit.server.config.AllUsersName;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
|
@ -48,7 +49,6 @@ import com.google.gerrit.server.index.DummyIndexModule;
|
|||
import com.google.gerrit.server.index.change.ReindexAfterUpdate;
|
||||
import com.google.gerrit.server.notedb.ChangeRebuilder;
|
||||
import com.google.gerrit.server.notedb.NotesMigration;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
import com.google.inject.Inject;
|
||||
|
@ -153,7 +153,7 @@ public class RebuildNoteDb extends SiteProgram {
|
|||
new Callable<Boolean>() {
|
||||
@Override
|
||||
public Boolean call() {
|
||||
try (ReviewDb db = unwrap(schemaFactory.open())) {
|
||||
try (ReviewDb db = unwrapDb(schemaFactory.open())) {
|
||||
return rebuilder.rebuildProject(
|
||||
db, changesByProject, project, allUsersRepo);
|
||||
} catch (Exception e) {
|
||||
|
@ -234,7 +234,7 @@ public class RebuildNoteDb extends SiteProgram {
|
|||
ArrayListMultimap.create();
|
||||
try (ReviewDb db = schemaFactory.open()) {
|
||||
if (projects.isEmpty() && !changes.isEmpty()) {
|
||||
Iterable<Change> todo = unwrap(db).changes().get(
|
||||
Iterable<Change> todo = unwrapDb(db).changes().get(
|
||||
Iterables.transform(changes, new Function<Integer, Change.Id>() {
|
||||
@Override
|
||||
public Change.Id apply(Integer in) {
|
||||
|
@ -245,7 +245,7 @@ public class RebuildNoteDb extends SiteProgram {
|
|||
changesByProject.put(c.getProject(), c.getId());
|
||||
}
|
||||
} else {
|
||||
for (Change c : unwrap(db).changes().all()) {
|
||||
for (Change c : unwrapDb(db).changes().all()) {
|
||||
boolean include = false;
|
||||
if (projects.isEmpty() && changes.isEmpty()) {
|
||||
include = true;
|
||||
|
@ -263,11 +263,4 @@ public class RebuildNoteDb extends SiteProgram {
|
|||
return ImmutableMultimap.copyOf(changesByProject);
|
||||
}
|
||||
}
|
||||
|
||||
private static ReviewDb unwrap(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,12 +29,12 @@ import com.google.gerrit.pgm.init.api.InstallPlugins;
|
|||
import com.google.gerrit.pgm.init.api.LibraryDownload;
|
||||
import com.google.gerrit.pgm.util.SiteProgram;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import static com.google.gerrit.reviewdb.server.ReviewDbUtil.unwrapDb;
|
||||
import com.google.gerrit.server.config.GerritServerConfigModule;
|
||||
import com.google.gerrit.server.config.SitePath;
|
||||
import com.google.gerrit.server.config.SitePaths;
|
||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.gerrit.server.plugins.JarScanner;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gerrit.server.schema.SchemaUpdater;
|
||||
import com.google.gerrit.server.schema.UpdateUI;
|
||||
import com.google.gerrit.server.securestore.SecureStore;
|
||||
|
@ -471,11 +471,4 @@ public class BaseInit extends SiteProgram {
|
|||
protected boolean isDev() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static ReviewDb unwrapDb(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
return((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.server.schema;
|
||||
package com.google.gerrit.reviewdb.server;
|
||||
|
||||
import com.google.common.util.concurrent.CheckedFuture;
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
|
@ -21,13 +21,6 @@ import com.google.gerrit.reviewdb.client.ChangeMessage;
|
|||
import com.google.gerrit.reviewdb.client.PatchLineComment;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||
import com.google.gerrit.reviewdb.server.ChangeAccess;
|
||||
import com.google.gerrit.reviewdb.server.ChangeMessageAccess;
|
||||
import com.google.gerrit.reviewdb.server.PatchLineCommentAccess;
|
||||
import com.google.gerrit.reviewdb.server.PatchSetAccess;
|
||||
import com.google.gerrit.reviewdb.server.PatchSetApprovalAccess;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.ResultSet;
|
||||
|
||||
|
@ -40,7 +33,7 @@ public class DisabledChangesReviewDbWrapper extends ReviewDbWrapper {
|
|||
private final DisabledPatchSetAccess patchSets;
|
||||
private final DisabledPatchLineCommentAccess patchComments;
|
||||
|
||||
DisabledChangesReviewDbWrapper(ReviewDb db) {
|
||||
public DisabledChangesReviewDbWrapper(ReviewDb db) {
|
||||
super(db);
|
||||
changes = new DisabledChangeAccess(delegate.changes());
|
||||
patchSetApprovals =
|
|
@ -49,6 +49,13 @@ public class ReviewDbUtil {
|
|||
return CHANGE_ID_FUNCTION;
|
||||
}
|
||||
|
||||
public static ReviewDb unwrapDb(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
return ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
|
||||
private ReviewDbUtil() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import com.google.gerrit.extensions.restapi.RestApiException;
|
|||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
|
||||
import com.google.gerrit.server.PatchSetUtil;
|
||||
import com.google.gerrit.server.StarredChangesUtil;
|
||||
import com.google.gerrit.server.config.GerritServerConfig;
|
||||
|
@ -33,7 +34,6 @@ import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
|
|||
import com.google.gerrit.server.git.BatchUpdate.RepoContext;
|
||||
import com.google.gerrit.server.git.BatchUpdateReviewDb;
|
||||
import com.google.gerrit.server.project.NoSuchChangeException;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
|
@ -57,10 +57,7 @@ class DeleteDraftChangeOp extends BatchUpdate.Op {
|
|||
if (db instanceof BatchUpdateReviewDb) {
|
||||
db = ((BatchUpdateReviewDb) db).unsafeGetDelegate();
|
||||
}
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
return ReviewDbUtil.unwrapDb(db);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -146,6 +146,7 @@ public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Inp
|
|||
psUtil.delete(ctx.getDb(), ctx.getUpdate(patchSet.getId()), patchSet);
|
||||
|
||||
accountPatchReviewStore.get().clearReviewed(psId);
|
||||
// Use the unwrap from DeleteDraftChangeOp to handle BatchUpdateReviewDb.
|
||||
ReviewDb db = DeleteDraftChangeOp.unwrap(ctx.getDb());
|
||||
db.changeMessages().delete(db.changeMessages().byPatchSet(psId));
|
||||
db.patchComments().delete(db.patchComments().byPatchSet(psId));
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.google.gerrit.extensions.restapi.RestReadView;
|
|||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
|
||||
import com.google.gerrit.server.git.BranchOrderSection;
|
||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.gerrit.server.git.MergeUtil;
|
||||
|
@ -32,7 +33,6 @@ import com.google.gerrit.server.project.ProjectCache;
|
|||
import com.google.gerrit.server.project.ProjectState;
|
||||
import com.google.gerrit.server.project.SubmitRuleEvaluator;
|
||||
import com.google.gerrit.server.query.change.ChangeData;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
|
@ -186,13 +186,10 @@ public class Mergeable implements RestReadView<RevisionResource> {
|
|||
throws OrmException {
|
||||
// Empty update of Change to bump rowVersion, changing its ETag.
|
||||
// TODO(dborowitz): Include cache info in ETag somehow instead.
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
db = ReviewDbUtil.unwrapDb(db);
|
||||
Change c = db.changes().get(id);
|
||||
if (c != null) {
|
||||
db.changes().update(Collections.singleton(c));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -50,7 +50,6 @@ import com.google.gerrit.server.project.InvalidChangeOperationException;
|
|||
import com.google.gerrit.server.project.NoSuchChangeException;
|
||||
import com.google.gerrit.server.project.NoSuchProjectException;
|
||||
import com.google.gerrit.server.project.NoSuchRefException;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmConcurrencyException;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.SchemaFactory;
|
||||
|
@ -856,7 +855,7 @@ public class BatchUpdate implements AutoCloseable {
|
|||
RevWalk rw, Change.Id id) throws Exception {
|
||||
Change c = newChanges.get(id);
|
||||
if (c == null) {
|
||||
c = unwrap(db).changes().get(id);
|
||||
c = ReviewDbUtil.unwrapDb(db).changes().get(id);
|
||||
}
|
||||
// Pass in preloaded change to controlFor, to avoid:
|
||||
// - reading from a db that does not belong to this update
|
||||
|
@ -903,11 +902,4 @@ public class BatchUpdate implements AutoCloseable {
|
|||
op.postUpdate(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
private static ReviewDb unwrap(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ import com.google.gerrit.reviewdb.client.Project;
|
|||
import com.google.gerrit.reviewdb.client.RefNames;
|
||||
import com.google.gerrit.reviewdb.client.RevId;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
|
||||
import com.google.gerrit.server.ReviewerSet;
|
||||
import com.google.gerrit.server.git.RefCache;
|
||||
import com.google.gerrit.server.git.RepoRefCache;
|
||||
|
@ -59,7 +60,6 @@ import com.google.gerrit.server.project.NoSuchChangeException;
|
|||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gerrit.server.query.change.ChangeData;
|
||||
import com.google.gerrit.server.query.change.InternalChangeQuery;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
|
@ -133,7 +133,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
|
||||
public ChangeNotes createChecked(ReviewDb db, Project.NameKey project,
|
||||
Change.Id changeId) throws OrmException, NoSuchChangeException {
|
||||
Change change = unwrap(db).changes().get(changeId);
|
||||
Change change = ReviewDbUtil.unwrapDb(db).changes().get(changeId);
|
||||
if (change == null || !change.getProject().equals(project)) {
|
||||
throw new NoSuchChangeException(changeId);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
|
||||
public ChangeNotes create(ReviewDb db, Project.NameKey project,
|
||||
Change.Id changeId) throws OrmException {
|
||||
Change change = unwrap(db).changes().get(changeId);
|
||||
Change change = ReviewDbUtil.unwrapDb(db).changes().get(changeId);
|
||||
checkNotNull(change,
|
||||
"change %s not found in ReviewDb", changeId);
|
||||
checkArgument(change.getProject().equals(project),
|
||||
|
@ -190,7 +190,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
ReviewDb db, Change.Id changeId) throws OrmException {
|
||||
checkState(!args.migration.readChanges(), "do not call"
|
||||
+ " createFromIdOnlyWhenNoteDbDisabled when NoteDb is enabled");
|
||||
Change change = unwrap(db).changes().get(changeId);
|
||||
Change change = ReviewDbUtil.unwrapDb(db).changes().get(changeId);
|
||||
checkNotNull(change,
|
||||
"change %s not found in ReviewDb", changeId);
|
||||
return new ChangeNotes(args, change).load();
|
||||
|
@ -217,7 +217,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
final ListeningExecutorService executorService, final ReviewDb db,
|
||||
final Project.NameKey project, final Change.Id changeId) {
|
||||
return Futures.makeChecked(
|
||||
Futures.transformAsync(unwrap(db).changes().getAsync(changeId),
|
||||
Futures.transformAsync(ReviewDbUtil.unwrapDb(db).changes().getAsync(changeId),
|
||||
new AsyncFunction<Change, ChangeNotes>() {
|
||||
@Override
|
||||
public ListenableFuture<ChangeNotes> apply(
|
||||
|
@ -262,7 +262,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
return notes;
|
||||
}
|
||||
|
||||
for (Change c : unwrap(db).changes().get(changeIds)) {
|
||||
for (Change c : ReviewDbUtil.unwrapDb(db).changes().get(changeIds)) {
|
||||
notes.add(createFromChangeOnlyWhenNoteDbDisabled(c));
|
||||
}
|
||||
return notes;
|
||||
|
@ -282,7 +282,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
return notes;
|
||||
}
|
||||
|
||||
for (Change c : unwrap(db).changes().get(changeIds)) {
|
||||
for (Change c : ReviewDbUtil.unwrapDb(db).changes().get(changeIds)) {
|
||||
if (c != null && project.equals(c.getDest().getParentKey())) {
|
||||
ChangeNotes cn = createFromChangeOnlyWhenNoteDbDisabled(c);
|
||||
if (predicate.apply(cn)) {
|
||||
|
@ -308,7 +308,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
for (Change change : unwrap(db).changes().all()) {
|
||||
for (Change change : ReviewDbUtil.unwrapDb(db).changes().all()) {
|
||||
ChangeNotes notes = createFromChangeOnlyWhenNoteDbDisabled(change);
|
||||
if (predicate.apply(notes)) {
|
||||
m.put(change.getProject(), notes);
|
||||
|
@ -334,7 +334,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
// A batch size of N may overload get(Iterable), so use something smaller,
|
||||
// but still >1.
|
||||
for (List<Change.Id> batch : Iterables.partition(ids, 30)) {
|
||||
for (Change change : unwrap(db).changes().get(batch)) {
|
||||
for (Change change : ReviewDbUtil.unwrapDb(db).changes().get(batch)) {
|
||||
notes.add(createFromChangeOnlyWhenNoteDbDisabled(change));
|
||||
}
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
Project.NameKey project) throws OrmException, IOException {
|
||||
Set<Change.Id> ids = scan(repo);
|
||||
List<ChangeNotes> changeNotes = new ArrayList<>(ids.size());
|
||||
db = unwrap(db);
|
||||
db = ReviewDbUtil.unwrapDb(db);
|
||||
for (Change.Id id : ids) {
|
||||
Change change = db.changes().get(id);
|
||||
if (change == null) {
|
||||
|
@ -381,13 +381,6 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
|
|||
}
|
||||
}
|
||||
|
||||
private static ReviewDb unwrap(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
|
||||
private final RefCache refs;
|
||||
|
||||
private Change change;
|
||||
|
|
|
@ -61,7 +61,6 @@ import com.google.gerrit.server.notedb.NoteDbUpdateManager.Result;
|
|||
import com.google.gerrit.server.patch.PatchListCache;
|
||||
import com.google.gerrit.server.project.NoSuchChangeException;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gwtorm.server.AtomicUpdate;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
import com.google.gwtorm.server.OrmRuntimeException;
|
||||
|
@ -157,7 +156,7 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
|
|||
public Result rebuild(ReviewDb db, Change.Id changeId)
|
||||
throws NoSuchChangeException, IOException, OrmException,
|
||||
ConfigInvalidException {
|
||||
db = unwrapDb(db);
|
||||
db = ReviewDbUtil.unwrapDb(db);
|
||||
Change change = db.changes().get(changeId);
|
||||
if (change == null) {
|
||||
throw new NoSuchChangeException(changeId);
|
||||
|
@ -188,7 +187,7 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
|
|||
@Override
|
||||
public NoteDbUpdateManager stage(ReviewDb db, Change.Id changeId)
|
||||
throws NoSuchChangeException, IOException, OrmException {
|
||||
db = unwrapDb(db);
|
||||
db = ReviewDbUtil.unwrapDb(db);
|
||||
Change change = db.changes().get(changeId);
|
||||
if (change == null) {
|
||||
throw new NoSuchChangeException(changeId);
|
||||
|
@ -204,7 +203,7 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
|
|||
public Result execute(ReviewDb db, Change.Id changeId,
|
||||
NoteDbUpdateManager manager) throws NoSuchChangeException, OrmException,
|
||||
IOException {
|
||||
db = unwrapDb(db);
|
||||
db = ReviewDbUtil.unwrapDb(db);
|
||||
Change change = db.changes().get(changeId);
|
||||
if (change == null) {
|
||||
throw new NoSuchChangeException(changeId);
|
||||
|
@ -1021,11 +1020,4 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ReviewDb unwrapDb(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
package com.google.gerrit.server.schema;
|
||||
|
||||
import com.google.gerrit.reviewdb.server.DisabledChangesReviewDbWrapper;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.notedb.NotesMigration;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
|
|
@ -17,6 +17,7 @@ package com.google.gerrit.server.schema;
|
|||
import com.google.gerrit.reviewdb.client.CurrentSchemaVersion;
|
||||
import com.google.gerrit.reviewdb.client.SystemConfig;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
|
||||
import com.google.gerrit.server.GerritPersonIdent;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.config.AllUsersName;
|
||||
|
@ -92,7 +93,7 @@ public class SchemaUpdater {
|
|||
}
|
||||
|
||||
public void update(final UpdateUI ui) throws OrmException {
|
||||
try (ReviewDb db = unwrap(schema.open())) {
|
||||
try (ReviewDb db = ReviewDbUtil.unwrapDb(schema.open())) {
|
||||
|
||||
final SchemaVersion u = updater.get();
|
||||
final CurrentSchemaVersion version = getSchemaVersion(db);
|
||||
|
@ -115,13 +116,6 @@ public class SchemaUpdater {
|
|||
}
|
||||
}
|
||||
|
||||
private static ReviewDb unwrap(ReviewDb db) {
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
}
|
||||
|
||||
private CurrentSchemaVersion getSchemaVersion(final ReviewDb db) {
|
||||
try {
|
||||
return db.schemaVersion().get(new CurrentSchemaVersion.Key());
|
||||
|
|
|
@ -28,7 +28,6 @@ import com.google.gerrit.server.git.GitRepositoryManager;
|
|||
import com.google.gerrit.server.notedb.ChangeBundle;
|
||||
import com.google.gerrit.server.notedb.ChangeNotes;
|
||||
import com.google.gerrit.server.notedb.ChangeRebuilder;
|
||||
import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
|
@ -71,7 +70,7 @@ public class NoteDbChecker {
|
|||
public void rebuildAndCheckAllChanges() throws Exception {
|
||||
rebuildAndCheckChanges(
|
||||
Iterables.transform(
|
||||
unwrapDb().changes().all(),
|
||||
getUnwrappedDb().changes().all(),
|
||||
ReviewDbUtil.changeIdFunction()));
|
||||
}
|
||||
|
||||
|
@ -81,7 +80,7 @@ public class NoteDbChecker {
|
|||
|
||||
public void rebuildAndCheckChanges(Iterable<Change.Id> changeIds)
|
||||
throws Exception {
|
||||
ReviewDb db = unwrapDb();
|
||||
ReviewDb db = getUnwrappedDb();
|
||||
|
||||
List<ChangeBundle> allExpected = readExpected(changeIds);
|
||||
|
||||
|
@ -124,7 +123,7 @@ public class NoteDbChecker {
|
|||
|
||||
private List<ChangeBundle> readExpected(Iterable<Change.Id> changeIds)
|
||||
throws Exception {
|
||||
ReviewDb db = unwrapDb();
|
||||
ReviewDb db = getUnwrappedDb();
|
||||
boolean old = notesMigration.readChanges();
|
||||
try {
|
||||
notesMigration.setReadChanges(false);
|
||||
|
@ -142,7 +141,7 @@ public class NoteDbChecker {
|
|||
|
||||
private void checkActual(List<ChangeBundle> allExpected, List<String> msgs)
|
||||
throws Exception {
|
||||
ReviewDb db = unwrapDb();
|
||||
ReviewDb db = getUnwrappedDb();
|
||||
boolean oldRead = notesMigration.readChanges();
|
||||
boolean oldWrite = notesMigration.writeChanges();
|
||||
try {
|
||||
|
@ -179,11 +178,8 @@ public class NoteDbChecker {
|
|||
}
|
||||
}
|
||||
|
||||
private ReviewDb unwrapDb() {
|
||||
private ReviewDb getUnwrappedDb() {
|
||||
ReviewDb db = dbProvider.get();
|
||||
if (db instanceof DisabledChangesReviewDbWrapper) {
|
||||
db = ((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
|
||||
}
|
||||
return db;
|
||||
return ReviewDbUtil.unwrapDb(db);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue