commit 5a05d2de64fdb3c5aed89171812c6b091fe39441 Author: Edwin Kempin Date: Wed Oct 14 14:59:25 2020 +0200 Compute known groups lazily when writing groups to the trace If tracing is not enabled, we shouldn't load the known groups. RestApiServlet already did the group loading lazily. Signed-off-by: Edwin Kempin Change-Id: I78851004eab82e04983a0edd41165adae511eea1 diff --git a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java index 246c697..3c70bfb 100644 --- a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java +++ b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java @@ -624,7 +624,7 @@ class ReceiveCommits { private void processCommandsUnsafe( Collection commands, MultiProgressMonitor progress) { logger.atFine().log("Calling user: %s", user.getLoggableName()); - logger.atFine().log("Groups: %s", user.getEffectiveGroups().getKnownGroups()); + logger.atFine().log("Groups: %s", lazy(() -> user.getEffectiveGroups().getKnownGroups())); if (!projectState.getProject().getState().permitsWrite()) { for (ReceiveCommand cmd : commands) { diff --git a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java index 37de0d1..defec4b 100644 --- a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java +++ b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.permissions; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.flogger.LazyArgs.lazy; import static com.google.gerrit.entities.RefNames.REFS_CACHE_AUTOMERGE; import static com.google.gerrit.entities.RefNames.REFS_CONFIG; import static com.google.gerrit.entities.RefNames.REFS_USERS_SELF; @@ -134,7 +135,7 @@ class DefaultRefFilter { "Filter refs for repository %s by visibility (options = %s, refs = %s)", projectState.getNameKey(), opts, refs); logger.atFinest().log("Calling user: %s", user.getLoggableName()); - logger.atFinest().log("Groups: %s", user.getEffectiveGroups().getKnownGroups()); + logger.atFinest().log("Groups: %s", lazy(() -> user.getEffectiveGroups().getKnownGroups())); logger.atFinest().log( "auth.skipFullRefEvaluationIfAllRefsAreVisible = %s", skipFullRefEvaluationIfAllRefsAreVisible);