From f843d8674e46e2326d3d250e53c26d84c1fe9cbf Mon Sep 17 00:00:00 2001 From: Patrick Hiesel Date: Thu, 7 Feb 2019 10:43:20 +0100 Subject: [PATCH] Mark DeletePrivate input as @Nullable The documentation says that an input is not required. The code checks for null values correctly, but the injection methods lack @Nullable which makes Guice fail to create the object when null is passed to the factory method. Annotate the input object as @Nullable to fix this. Change-Id: I0d424e45d6039fd4ad8386b6811b9134cd600dfd --- .../server/restapi/change/DeletePrivate.java | 3 ++- .../server/restapi/change/SetPrivateOp.java | 17 +++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/java/com/google/gerrit/server/restapi/change/DeletePrivate.java b/java/com/google/gerrit/server/restapi/change/DeletePrivate.java index 9b747e072d..053aed45b5 100644 --- a/java/com/google/gerrit/server/restapi/change/DeletePrivate.java +++ b/java/com/google/gerrit/server/restapi/change/DeletePrivate.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.restapi.change; import static com.google.gerrit.extensions.conditions.BooleanCondition.or; +import com.google.gerrit.common.Nullable; import com.google.gerrit.extensions.conditions.BooleanCondition; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceConflictException; @@ -59,7 +60,7 @@ public class DeletePrivate @Override protected Response applyImpl( - BatchUpdate.Factory updateFactory, ChangeResource rsrc, SetPrivateOp.Input input) + BatchUpdate.Factory updateFactory, ChangeResource rsrc, @Nullable SetPrivateOp.Input input) throws RestApiException, UpdateException { if (!canDeletePrivate(rsrc).value()) { throw new AuthException("not allowed to unmark private"); diff --git a/java/com/google/gerrit/server/restapi/change/SetPrivateOp.java b/java/com/google/gerrit/server/restapi/change/SetPrivateOp.java index 8aac92c51d..720fd90441 100644 --- a/java/com/google/gerrit/server/restapi/change/SetPrivateOp.java +++ b/java/com/google/gerrit/server/restapi/change/SetPrivateOp.java @@ -15,6 +15,7 @@ package com.google.gerrit.server.restapi.change; import com.google.common.base.Strings; +import com.google.gerrit.common.Nullable; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.ChangeMessage; @@ -43,14 +44,14 @@ public class SetPrivateOp implements BatchUpdateOp { } public interface Factory { - SetPrivateOp create(ChangeMessagesUtil cmUtil, boolean isPrivate, Input input); + SetPrivateOp create(ChangeMessagesUtil cmUtil, boolean isPrivate, @Nullable Input input); } - private final ChangeMessagesUtil cmUtil; - private final PatchSetUtil psUtil; - private final boolean isPrivate; - private final Input input; private final PrivateStateChanged privateStateChanged; + private final PatchSetUtil psUtil; + private final ChangeMessagesUtil cmUtil; + private final boolean isPrivate; + @Nullable private final Input input; private Change change; private PatchSet ps; @@ -61,12 +62,12 @@ public class SetPrivateOp implements BatchUpdateOp { PatchSetUtil psUtil, @Assisted ChangeMessagesUtil cmUtil, @Assisted boolean isPrivate, - @Assisted Input input) { - this.cmUtil = cmUtil; + @Assisted @Nullable Input input) { + this.privateStateChanged = privateStateChanged; this.psUtil = psUtil; + this.cmUtil = cmUtil; this.isPrivate = isPrivate; this.input = input; - this.privateStateChanged = privateStateChanged; } @Override