diff options
author | Edwin Kempin <ekempin@google.com> | 2023-11-03 11:06:52 +0000 |
---|---|---|
committer | Nasser Grainawi <nasser.grainawi@linaro.org> | 2023-11-08 18:46:29 +0000 |
commit | 94bc9aee9ffb39e52546ffd712b50f4aee246952 (patch) | |
tree | e6522ffa26e8fd4b993c6c5aa3aee5dd86cc3dcd | |
parent | ad29debbac3d6a68a730f0316a4d97bd6131b8f2 (diff) |
ChangeJson: Log caller when current revision is unexpectedly null
This may help us understand the conditions under which this issue
happens.
Release-Notes: skip
Change-Id: Ib55aedca384dda555297fe83b14783b85e464484
Signed-off-by: Edwin Kempin <ekempin@google.com>
(cherry picked from commit 3600dcf6a96bdd18f612d6f8c955647ade70c2ad)
-rw-r--r-- | java/com/google/gerrit/server/change/ChangeJson.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/java/com/google/gerrit/server/change/ChangeJson.java b/java/com/google/gerrit/server/change/ChangeJson.java index 7c61e5878b..19064b0fa1 100644 --- a/java/com/google/gerrit/server/change/ChangeJson.java +++ b/java/com/google/gerrit/server/change/ChangeJson.java @@ -106,6 +106,7 @@ import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.TrackingFooters; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.index.change.ChangeField; +import com.google.gerrit.server.logging.CallerFinder; import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.notedb.ReviewerStateInternal; import com.google.gerrit.server.patch.PatchListNotAvailableException; @@ -758,6 +759,7 @@ public class ChangeJson { // This block must come after the ChangeInfo is mostly populated, since // it will be passed to ActionVisitors as-is. + if (needRevisions) { out.revisions = revisionJson.getRevisions(accountLoader, cd, src, limitToPsId, out); for (Map.Entry<String, RevisionInfo> entry : out.revisions.entrySet()) { @@ -770,13 +772,14 @@ public class ChangeJson { logger.atSevere().log( "current revision for change %s not found" + " (current patch set ID = %s, patch sets = %s, meta revision = %s," - + " options = %s)", + + " options = %s, caller = %s)", cd.getId(), cd.change().currentPatchSetId(), src.entrySet().stream() .collect(toImmutableMap(Map.Entry::getKey, e -> e.getValue().commitId().name())), getMetaRevisionIfAvailable(cd).map(ObjectId::name).orElse("n/a"), - options); + options, + CallerFinder.builder().addTarget(ChangeJson.class).build().findCallerLazy()); PatchSet.Id currentPatchSetFromChangeData = Optional.ofNullable(cd.currentPatchSet()).map(PatchSet::id).orElse(null); if (!cd.change().currentPatchSetId().equals(currentPatchSetFromChangeData)) { |