diff options
Diffstat (limited to 'gerrit-server')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/change/PostReview.java | 16 |
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) { |