summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaša Živkov <sasa.zivkov@sap.com>2024-02-29 10:26:44 +0100
committerSaša Živkov <sasa.zivkov@sap.com>2024-02-29 10:53:53 +0100
commit7196d6fb189b45d242c5357cb83321b3e3c9ba55 (patch)
treea85d5d3e587cd1f9cc6d92661c7ba10fcd11ec6c
parent99e8ad00012db78e310c086f0cea8d1215844f6a (diff)
Remove drafts and stars from the ref_state_pattern index field
Change I36c1e2f56127a7e5a11769bf36daf586e32d8bcf excluded drafts and stars from the ref_state index field but failed to exclude the related patterns from the ref_state_pattern. As a result, any change that had a draft comment or a star was always stale, reindexing such a change would never get it out of the stale state. Release-Notes: Fix change staleness check for changes with drafts and stars Forward-Compatible: checked Change-Id: Ie66138180f3df65c82624905ecdab915992b381b
-rw-r--r--java/com/google/gerrit/server/index/change/ChangeField.java11
-rw-r--r--javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java8
2 files changed, 8 insertions, 11 deletions
diff --git a/java/com/google/gerrit/server/index/change/ChangeField.java b/java/com/google/gerrit/server/index/change/ChangeField.java
index d3f6268b09..01a19dff37 100644
--- a/java/com/google/gerrit/server/index/change/ChangeField.java
+++ b/java/com/google/gerrit/server/index/change/ChangeField.java
@@ -70,7 +70,6 @@ import com.google.gerrit.proto.Protos;
import com.google.gerrit.server.ReviewerByEmailSet;
import com.google.gerrit.server.ReviewerSet;
import com.google.gerrit.server.StarredChangesUtil;
-import com.google.gerrit.server.config.AllUsersName;
import com.google.gerrit.server.index.change.StalenessChecker.RefStatePattern;
import com.google.gerrit.server.notedb.ReviewerStateInternal;
import com.google.gerrit.server.notedb.SubmitRequirementProtoConverter;
@@ -1362,12 +1361,6 @@ public class ChangeField {
RefStatePattern.create(
RefNames.REFS_USERS + "*/" + RefNames.EDIT_PREFIX + id + "/*")
.toByteArray(project));
- result.add(
- RefStatePattern.create(RefNames.refsStarredChangesPrefix(id) + "*")
- .toByteArray(allUsers(cd)));
- result.add(
- RefStatePattern.create(RefNames.refsDraftCommentsPrefix(id) + "*")
- .toByteArray(allUsers(cd)));
return result;
},
(cd, field) -> cd.setRefStatePatterns(field));
@@ -1404,10 +1397,6 @@ public class ChangeField {
return in -> in.change() != null ? func.apply(in.change()) : null;
}
- private static AllUsersName allUsers(ChangeData cd) {
- return cd.getAllUsersNameForIndexing();
- }
-
private static String truncateStringValueToMaxTermLength(String str) {
return truncateStringValue(str, MAX_TERM_LENGTH);
}
diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index f6e7ede1ca..ca7d540805 100644
--- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -3297,6 +3297,14 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests {
assertQuery("has:edit", change);
assertThat(indexer.reindexIfStale(project, change.getId()).get()).isTrue();
assertQuery("has:edit");
+
+ // Index is not stale when a draft comment exists
+ DraftInput in = new DraftInput();
+ in.line = 1;
+ in.message = "nit: trailing whitespace";
+ in.path = Patch.COMMIT_MSG;
+ gApi.changes().id(project.get(), change.getId().get()).current().createDraft(in);
+ assertThat(indexer.reindexIfStale(project, change.getId()).get()).isFalse();
}
@Test