Merge branch 'stable-3.0' into stable-3.1
* stable-3.0:
CommentsIT#postCommentsUnreachableData: Remove unnecessary setApiUser call
ChangeDraftUpdate: Remove unused local variable
Fix deletion of draft comment refs
Upgrade testcontainers to 1.12.4
Change-Id: I4972ec18dc832cb5b782714a42ea847e09066db6
diff --git a/java/com/google/gerrit/server/notedb/ChangeDraftUpdate.java b/java/com/google/gerrit/server/notedb/ChangeDraftUpdate.java
index 877022e..b55ce49 100644
--- a/java/com/google/gerrit/server/notedb/ChangeDraftUpdate.java
+++ b/java/com/google/gerrit/server/notedb/ChangeDraftUpdate.java
@@ -205,7 +205,6 @@
Map<ObjectId, RevisionNoteBuilder> builders = cache.getBuilders();
boolean touchedAnyRevs = false;
- boolean hasComments = false;
for (Map.Entry<ObjectId, RevisionNoteBuilder> e : builders.entrySet()) {
updatedCommits.add(e.getKey());
ObjectId id = e.getKey();
@@ -216,7 +215,6 @@
if (data.length == 0) {
rnm.noteMap.remove(id);
} else {
- hasComments = true;
ObjectId dataBlob = ins.insert(OBJ_BLOB, data);
rnm.noteMap.set(id, dataBlob);
}
@@ -229,10 +227,9 @@
return NO_OP_UPDATE;
}
- // If we touched every revision and there are no comments left, tell the
+ // If there are no comments left, tell the
// caller to delete the entire ref.
- boolean touchedAllRevs = updatedCommits.equals(rnm.revisionNotes.keySet());
- if (touchedAllRevs && !hasComments) {
+ if (!rnm.noteMap.iterator().hasNext()) {
return null;
}
diff --git a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
index d3a0cb4..b1194b1 100644
--- a/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/change/CommentsIT.java
@@ -32,6 +32,7 @@
import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
import com.google.gerrit.entities.Change;
import com.google.gerrit.entities.Patch;
+import com.google.gerrit.entities.RefNames;
import com.google.gerrit.extensions.api.changes.DeleteCommentInput;
import com.google.gerrit.extensions.api.changes.DraftInput;
import com.google.gerrit.extensions.api.changes.ReviewInput;
@@ -68,6 +69,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.eclipse.jgit.lib.ObjectReader;
+import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.notes.NoteMap;
import org.eclipse.jgit.revwalk.RevCommit;
@@ -314,6 +316,45 @@
}
@Test
+ public void postCommentsUnreachableData() throws Exception {
+ String file = "file";
+ PushOneCommit push =
+ pushFactory.create(admin.newIdent(), testRepo, "first subject", file, "l1\nl2\n");
+
+ String dest = "refs/for/master";
+ PushOneCommit.Result r1 = push.to(dest);
+ r1.assertOkStatus();
+ String changeId = r1.getChangeId();
+ String revId = r1.getCommit().getName();
+
+ PushOneCommit.Result r2 = amendChange(r1.getChangeId());
+ r2.assertOkStatus();
+
+ String draftRefName = RefNames.refsDraftComments(r1.getChange().getId(), admin.id());
+
+ DraftInput draft = newDraft(file, Side.REVISION, 1, "comment");
+ addDraft(changeId, "1", draft);
+ ReviewInput reviewInput = new ReviewInput();
+ reviewInput.drafts = DraftHandling.PUBLISH;
+ reviewInput.message = "foo";
+ gApi.changes().id(r1.getChangeId()).revision(1).review(reviewInput);
+
+ addDraft(changeId, "2", newDraft(file, Side.REVISION, 2, "comment2"));
+ reviewInput = new ReviewInput();
+ reviewInput.drafts = DraftHandling.PUBLISH_ALL_REVISIONS;
+ reviewInput.message = "bar";
+ gApi.changes().id(r1.getChangeId()).revision(2).review(reviewInput);
+
+ Map<String, List<CommentInfo>> drafts = getDraftComments(changeId, revId);
+ assertThat(drafts.isEmpty()).isTrue();
+
+ try (Repository repo = repoManager.openRepository(allUsers)) {
+ Ref ref = repo.exactRef(draftRefName);
+ assertThat(ref).isNull();
+ }
+ }
+
+ @Test
public void listComments() throws Exception {
String file = "file";
PushOneCommit push =
diff --git a/tools/nongoogle.bzl b/tools/nongoogle.bzl
index 1112c50..eb1372a 100644
--- a/tools/nongoogle.bzl
+++ b/tools/nongoogle.bzl
@@ -170,18 +170,18 @@
sha1 = "3e83394258ae2089be7219b971ec21a8288528ad",
)
- TESTCONTAINERS_VERSION = "1.12.3"
+ TESTCONTAINERS_VERSION = "1.12.4"
maven_jar(
name = "testcontainers",
artifact = "org.testcontainers:testcontainers:" + TESTCONTAINERS_VERSION,
- sha1 = "e424a4549640e120acceac641ac909fcda58bf62",
+ sha1 = "456b6facac12c4b67130d9056a43c011679e9f0c",
)
maven_jar(
name = "testcontainers-elasticsearch",
artifact = "org.testcontainers:elasticsearch:" + TESTCONTAINERS_VERSION,
- sha1 = "c0796de5032070b8768ce78c78949b48f13c30db",
+ sha1 = "9e210c277a35a95a76d03a79e2812575bd07391c",
)
maven_jar(