summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java16
1 files changed, 16 insertions, 0 deletions
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 51720f2104..026a269e22 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
@@ -106,6 +106,7 @@ public class PostReview implements RestModifyView<RevisionResource, Input> {
static class Output {
Map<String, Short> labels;
+ String message;
}
private final ReviewDb db;
@@ -178,6 +179,14 @@ public class PostReview implements RestModifyView<RevisionResource, Input> {
Output output = new Output();
output.labels = input.labels;
+ if (input.labels != null && change.getStatus().isCI()) {
+ output.message =
+ "The change was staged while you were reviewing it. " +
+ "Due to this, only your comments were published, while your review scores were dropped.";
+ }
+ else {
+ output.message = "";
+ }
return output;
}
@@ -359,6 +368,13 @@ public class PostReview implements RestModifyView<RevisionResource, Input> {
// TODO Allow updating some labels even when closed.
continue;
}
+ if (change.getStatus().isCI()) {
+ // If the state of a change is INTEGRATING, STAGED or STAGING review
+ // scores are not allowed. This check is necessary here because some
+ // other user may have changed the state of a change while another
+ // user is reviewing it. Scores are dropped but comments are kept.
+ continue;
+ }
PatchSetApproval c = current.remove(name);
if (ent.getValue() == null || ent.getValue() == 0) {