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