ReindexAfterUpdate: Don't load change directly from database
If notedb is enabled the change should be loaded from notedb. Change-Id: Ib60b8288651253369aa76a9075a31a7423a8389d Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -26,6 +26,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.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.git.QueueProvider.QueueType;
|
import com.google.gerrit.server.git.QueueProvider.QueueType;
|
||||||
|
import com.google.gerrit.server.notedb.ChangeNotes;
|
||||||
import com.google.gerrit.server.query.change.InternalChangeQuery;
|
import com.google.gerrit.server.query.change.InternalChangeQuery;
|
||||||
import com.google.gerrit.server.util.ManualRequestContext;
|
import com.google.gerrit.server.util.ManualRequestContext;
|
||||||
import com.google.gerrit.server.util.OneOffRequestContext;
|
import com.google.gerrit.server.util.OneOffRequestContext;
|
||||||
@@ -49,6 +50,7 @@ public class ReindexAfterUpdate implements GitReferenceUpdatedListener {
|
|||||||
private final Provider<InternalChangeQuery> queryProvider;
|
private final Provider<InternalChangeQuery> queryProvider;
|
||||||
private final ChangeIndexer.Factory indexerFactory;
|
private final ChangeIndexer.Factory indexerFactory;
|
||||||
private final IndexCollection indexes;
|
private final IndexCollection indexes;
|
||||||
|
private final ChangeNotes.Factory notesFactory;
|
||||||
private final ListeningExecutorService executor;
|
private final ListeningExecutorService executor;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -57,11 +59,13 @@ public class ReindexAfterUpdate implements GitReferenceUpdatedListener {
|
|||||||
Provider<InternalChangeQuery> queryProvider,
|
Provider<InternalChangeQuery> queryProvider,
|
||||||
ChangeIndexer.Factory indexerFactory,
|
ChangeIndexer.Factory indexerFactory,
|
||||||
IndexCollection indexes,
|
IndexCollection indexes,
|
||||||
|
ChangeNotes.Factory notesFactory,
|
||||||
@IndexExecutor(QueueType.BATCH) ListeningExecutorService executor) {
|
@IndexExecutor(QueueType.BATCH) ListeningExecutorService executor) {
|
||||||
this.requestContext = requestContext;
|
this.requestContext = requestContext;
|
||||||
this.queryProvider = queryProvider;
|
this.queryProvider = queryProvider;
|
||||||
this.indexerFactory = indexerFactory;
|
this.indexerFactory = indexerFactory;
|
||||||
this.indexes = indexes;
|
this.indexes = indexes;
|
||||||
|
this.notesFactory = notesFactory;
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,7 +149,9 @@ public class ReindexAfterUpdate implements GitReferenceUpdatedListener {
|
|||||||
protected Void impl(RequestContext ctx) throws OrmException, IOException {
|
protected Void impl(RequestContext ctx) throws OrmException, IOException {
|
||||||
// Reload change, as some time may have passed since GetChanges.
|
// Reload change, as some time may have passed since GetChanges.
|
||||||
ReviewDb db = ctx.getReviewDbProvider().get();
|
ReviewDb db = ctx.getReviewDbProvider().get();
|
||||||
Change c = db.changes().get(id);
|
Change c = notesFactory
|
||||||
|
.create(db, new Project.NameKey(event.getProjectName()), id)
|
||||||
|
.getChange();
|
||||||
indexerFactory.create(executor, indexes).index(db, c);
|
indexerFactory.create(executor, indexes).index(db, c);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user