diff options
author | Edwin Kempin <ekempin@google.com> | 2023-11-02 11:43:20 +0000 |
---|---|---|
committer | Nasser Grainawi <nasser.grainawi@linaro.org> | 2023-11-08 18:44:50 +0000 |
commit | 88039fa6a0e671a2603e98e6c73c93a65dc9eccf (patch) | |
tree | 1ae0e55498b9e513bea12c51162e68f22384165a | |
parent | ae32432a9d533bef8067a31ec4769efdf1b2242b (diff) |
ChangeJson: Fix NullPointerException when cd.currentPatchSet() is null
Change Ib7b4f378b added a log statement to log cases where the current
patch set in cd.change().currentPatchSetId() mismatches
cd.currentPatchSet(). One of the cases where there is a mismatch is when
cd.change().currentPatchSetId() returns a patch set ID, but
cd.currentPatchSet() returns null.
Release-Notes: skip
Change-Id: Ibd7a4eb1cca27f87e5bf84e8072d1d3bb4c65cd9
Signed-off-by: Edwin Kempin <ekempin@google.com>
(cherry picked from commit 63e041bc3abb7d298d24cdce1aff0300bd0c5976)
-rw-r--r-- | java/com/google/gerrit/server/change/ChangeJson.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/java/com/google/gerrit/server/change/ChangeJson.java b/java/com/google/gerrit/server/change/ChangeJson.java index 2b7f8facf7..1a8d48c548 100644 --- a/java/com/google/gerrit/server/change/ChangeJson.java +++ b/java/com/google/gerrit/server/change/ChangeJson.java @@ -780,10 +780,12 @@ public class ChangeJson { .filter(refState -> PatchSet.Id.fromRef(refState.ref()) != null) .map(refState -> refState.ref() + ":" + refState.id().name()) .collect(toList())); - if (!cd.change().currentPatchSetId().equals(cd.currentPatchSet().id())) { + PatchSet.Id currentPatchSetFromChangeData = + Optional.ofNullable(cd.currentPatchSet()).map(PatchSet::id).orElse(null); + if (!cd.change().currentPatchSetId().equals(currentPatchSetFromChangeData)) { logger.atSevere().log( "mismatch between current patch set in Change (%s) and ChangeData (%s)", - cd.change().currentPatchSetId(), cd.currentPatchSet().id()); + cd.change().currentPatchSetId(), currentPatchSetFromChangeData); } } } |