diff options
author | Edwin Kempin <ekempin@google.com> | 2023-10-18 12:59:58 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-10-18 12:59:58 +0000 |
commit | 80b648e402048b3b0b01fa1bf58357a1f23a6957 (patch) | |
tree | 84e4cd058a4997eb0c77918aa315ec85999f9d44 | |
parent | cedb31dd2b6ae9b7913fbc9e760a132c74126e67 (diff) | |
parent | 7f2634fa1e41add4a358cd3922da2caa2b31faaa (diff) |
Merge "SubmitRuleEvaluator: Simply logic that checks that change and project exist"upstream/test-dmfilippov
-rw-r--r-- | java/com/google/gerrit/server/project/SubmitRuleEvaluator.java | 31 |
1 files 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<ProjectState> 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 -> { |