summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacek Centkowski <geminica.programs@gmail.com>2023-11-06 08:54:27 +0100
committerJacek Centkowski <geminica.programs@gmail.com>2023-11-06 21:22:39 +0000
commitbbbfe2b937bf6088b3e6527940e9e49334cb6607 (patch)
tree1e5bd41464820893a0ec9c65e19c7b35512dfc20
parent8f54f91dc21df0e8b0a8968bbd5478d9dfbadb17 (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.java18
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)