diff options
author | Jacek Centkowski <geminica.programs@gmail.com> | 2023-11-06 08:54:27 +0100 |
---|---|---|
committer | Jacek Centkowski <geminica.programs@gmail.com> | 2023-11-06 21:22:39 +0000 |
commit | bbbfe2b937bf6088b3e6527940e9e49334cb6607 (patch) | |
tree | 1e5bd41464820893a0ec9c65e19c7b35512dfc20 | |
parent | 8f54f91dc21df0e8b0a8968bbd5478d9dfbadb17 (diff) |
Optimise the way that `SubmitRuleEvaluator.evaluate` loads objects
The `ProjectState` retrieval is performed only when needed (previously
it was always performed).
Release-Notes: skip
Change-Id: Ifaf6ead5c869ba705967256ab419ea59f87e1eae
-rw-r--r-- | java/com/google/gerrit/server/project/SubmitRuleEvaluator.java | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java index eba05fe3a3..c5928f6d7a 100644 --- a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java +++ b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java @@ -121,15 +121,6 @@ public class SubmitRuleEvaluator { throw new StorageException("Change not found"); } - ProjectState projectState = - projectCache - .get(cd.project()) - .orElseThrow( - () -> - new IllegalStateException( - "Unable to find project while evaluating submit rule", - new NoSuchProjectException(cd.project()))); - if (cd.change().isClosed() && (!opts.recomputeOnClosedChanges() || OnlineReindexMode.isActive())) { return cd.notes().getSubmitRecords().stream() @@ -145,6 +136,15 @@ public class SubmitRuleEvaluator { .collect(toImmutableList()); } + ProjectState projectState = + projectCache + .get(cd.project()) + .orElseThrow( + () -> + new IllegalStateException( + "Unable to find project while evaluating submit rule", + new NoSuchProjectException(cd.project()))); + // We evaluate all the plugin-defined evaluators, // and then we collect the results in one list. return Streams.stream(submitRules) |