From 7f2634fa1e41add4a358cd3922da2caa2b31faaa Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Tue, 17 Oct 2023 08:29:36 +0000 Subject: SubmitRuleEvaluator: Simply logic that checks that change and project exist 1. check that change exists We do not need a local variable for the change, but we can just use cd.change() after checking that cd.change() is not null. 2. check that project exists The old code throw a NoSuchProjectException just to catch it can wrap it into an IllegalStateException, just throw the IllegalStateException directly. Release-Notes: skip Change-Id: I3fe3849608b2cd2ed3589fa4ab3075b35cc91bbb Signed-off-by: Edwin Kempin --- .../gerrit/server/project/SubmitRuleEvaluator.java | 31 +++++++++------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java index 62cb7975ac..866ce1444c 100644 --- a/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java +++ b/java/com/google/gerrit/server/project/SubmitRuleEvaluator.java @@ -18,7 +18,6 @@ import static com.google.common.collect.ImmutableList.toImmutableList; import com.google.common.collect.Streams; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.entities.Change; import com.google.gerrit.entities.Project; import com.google.gerrit.entities.SubmitRecord; import com.google.gerrit.entities.SubmitTypeRecord; @@ -118,25 +117,21 @@ public class SubmitRuleEvaluator { "Evaluate submit rules for change %d (caller: %s)", cd.change().getId().get(), callerFinder.findCallerLazy()); try (Timer0.Context ignored = metrics.submitRuleEvaluationLatency.start()) { - Change change; - ProjectState projectState; - try { - change = cd.change(); - if (change == null) { - throw new StorageException("Change not found"); - } - - Project.NameKey name = cd.project(); - Optional projectStateOptional = projectCache.get(name); - if (!projectStateOptional.isPresent()) { - throw new NoSuchProjectException(name); - } - projectState = projectStateOptional.get(); - } catch (NoSuchProjectException e) { - throw new IllegalStateException("Unable to find project while evaluating submit rule", e); + if (cd.change() == null) { + throw new StorageException("Change not found"); } - if (change.isClosed() && (!opts.recomputeOnClosedChanges() || OnlineReindexMode.isActive())) { + 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() .map( r -> { -- cgit v1.2.3