diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java index 6481d5ffa6..a42827a3c3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java @@ -107,7 +107,8 @@ public class Abandon implements RestModifyView, db.rollback(); } - CheckedFuture indexFuture = indexer.indexAsync(change); + CheckedFuture indexFuture = + indexer.indexAsync(change.getId()); try { ReplyToChangeSender cm = abandonedSenderFactory.create(change); cm.setFrom(caller.getAccountId()); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/MergeabilityChecker.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/MergeabilityChecker.java index 6c1202fde2..bf9f65d510 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/MergeabilityChecker.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/MergeabilityChecker.java @@ -185,7 +185,8 @@ public class MergeabilityChecker implements GitReferenceUpdatedListener { * reindexes the change (whether the mergeability flag was updated or * not) */ - public CheckedFuture updateAndIndexAsync(final Change change) { + public CheckedFuture updateAndIndexAsync(Change change) { + final Change.Id id = change.getId(); return Futures.makeChecked( Futures.transform(updateAsync(change), new AsyncFunction() { @@ -194,7 +195,7 @@ public class MergeabilityChecker implements GitReferenceUpdatedListener { public ListenableFuture apply(Boolean indexUpdated) throws Exception { if (!indexUpdated) { - return (ListenableFuture) indexer.indexAsync(change); + return (ListenableFuture) indexer.indexAsync(id); } return Futures.immediateFuture(null); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java index 70936afd51..0203e3ba54 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java @@ -139,7 +139,7 @@ public class PostReview implements RestModifyView CheckedFuture indexWrite; if (dirty) { - indexWrite = indexer.indexAsync(change); + indexWrite = indexer.indexAsync(change.getId()); } else { indexWrite = Futures. immediateCheckedFuture(null); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java index 1d6dfe788b..46893dffb2 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReviewers.java @@ -228,7 +228,8 @@ public class PostReviewers implements RestModifyView indexFuture = indexer.indexAsync(rsrc.getChange()); + CheckedFuture indexFuture = + indexer.indexAsync(rsrc.getChange().getId()); result.reviewers = Lists.newArrayListWithCapacity(added.size()); for (PatchSetApproval psa : added) { result.reviewers.add(json.format( diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java index d49527dbd5..f522de5b70 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Publish.java @@ -77,7 +77,7 @@ public class Publish implements RestModifyView, if (!updatedPatchSet.isDraft() || updatedChange.getStatus() == Change.Status.NEW) { CheckedFuture indexFuture = - indexer.indexAsync(updatedChange); + indexer.indexAsync(updatedChange.getId()); hooks.doDraftPublishedHook(updatedChange, updatedPatchSet, dbProvider.get()); sender.send(rsrc.getChange().getStatus() == Change.Status.DRAFT, rsrc.getUser(), updatedChange, updatedPatchSet, diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java index 84ace98cf7..a9534a5be7 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PutTopic.java @@ -115,7 +115,8 @@ class PutTopic implements RestModifyView, } finally { db.rollback(); } - CheckedFuture indexFuture = indexer.indexAsync(change); + CheckedFuture indexFuture = + indexer.indexAsync(change.getId()); hooks.doTopicChangedHook(change, currentUser.getAccount(), oldTopicName, db); indexFuture.checkedGet(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java index b76307953b..b3641e53e8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Restore.java @@ -108,7 +108,8 @@ public class Restore implements RestModifyView, db.rollback(); } - CheckedFuture indexFuture = indexer.indexAsync(change); + CheckedFuture indexFuture = + indexer.indexAsync(change.getId()); try { ReplyToChangeSender cm = restoredSenderFactory.create(change); cm.setFrom(caller.getAccountId()); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java index 3dae94f4cf..e4d0de85a4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java @@ -1043,7 +1043,7 @@ public class MergeOp { CheckedFuture indexFuture; if (change != null) { - indexFuture = indexer.indexAsync(change); + indexFuture = indexer.indexAsync(change.getId()); } else { indexFuture = null; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexer.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexer.java index 612df9a7a7..b500e8a9ae 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexer.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexer.java @@ -112,12 +112,12 @@ public class ChangeIndexer { /** * Start indexing a change. * - * @param change change to index. + * @param id change to index. * @return future for the indexing task. */ - public CheckedFuture indexAsync(Change change) { + public CheckedFuture indexAsync(Change.Id id) { return executor != null - ? submit(new Task(change, false)) + ? submit(new Task(id, false)) : Futures. immediateCheckedFuture(null); } @@ -145,12 +145,12 @@ public class ChangeIndexer { /** * Start deleting a change. * - * @param change change to delete. + * @param id change to delete. * @return future for the deleting task. */ - public CheckedFuture deleteAsync(Change change) { + public CheckedFuture deleteAsync(Change.Id id) { return executor != null - ? submit(new Task(change, true)) + ? submit(new Task(id, true)) : Futures. immediateCheckedFuture(null); } @@ -186,11 +186,11 @@ public class ChangeIndexer { } private class Task implements Callable { - private final Change change; + private final Change.Id id; private final boolean delete; - private Task(Change change, boolean delete) { - this.change = change; + private Task(Change.Id id, boolean delete) { + this.id = id; this.delete = delete; } @@ -225,7 +225,7 @@ public class ChangeIndexer { RequestContext oldCtx = context.setContext(newCtx); try { ChangeData cd = changeDataFactory.create( - newCtx.getReviewDbProvider().get(), change); + newCtx.getReviewDbProvider().get(), id); if (delete) { for (ChangeIndex i : getWriteIndexes()) { i.delete(cd); @@ -244,16 +244,14 @@ public class ChangeIndexer { } } } catch (Exception e) { - log.error(String.format( - "Failed to index change %d in %s", - change.getId().get(), change.getProject().get()), e); + log.error(String.format("Failed to index change %d", id), e); throw e; } } @Override public String toString() { - return "index-change-" + change.getId().get(); + return "index-change-" + id.get(); } } }