summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Kempin <ekempin@google.com>2023-11-02 11:43:20 +0000
committerNasser Grainawi <nasser.grainawi@linaro.org>2023-11-08 18:44:50 +0000
commit88039fa6a0e671a2603e98e6c73c93a65dc9eccf (patch)
tree1ae0e55498b9e513bea12c51162e68f22384165a
parentae32432a9d533bef8067a31ec4769efdf1b2242b (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.java6
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);
}
}
}