diff options
Diffstat (limited to 'java/com/google/gerrit/server/query/change/ChangeData.java')
-rw-r--r-- | java/com/google/gerrit/server/query/change/ChangeData.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/java/com/google/gerrit/server/query/change/ChangeData.java b/java/com/google/gerrit/server/query/change/ChangeData.java index 97eb0fde96..9a32a0344c 100644 --- a/java/com/google/gerrit/server/query/change/ChangeData.java +++ b/java/com/google/gerrit/server/query/change/ChangeData.java @@ -76,6 +76,7 @@ import com.google.gerrit.server.change.MergeabilityCache; import com.google.gerrit.server.change.PureRevert; import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.config.GerritServerId; +import com.google.gerrit.server.config.SkipCurrentRulesEvaluationOnClosedChanges; import com.google.gerrit.server.config.TrackingFooters; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.MergeUtilFactory; @@ -332,6 +333,7 @@ public class ChangeData { null, serverId, virtualIdAlgo, + false, project, id, null, @@ -364,6 +366,7 @@ public class ChangeData { private final SubmitRequirementsEvaluator submitRequirementsEvaluator; private final SubmitRequirementsUtil submitRequirementsUtil; private final SubmitRuleEvaluator.Factory submitRuleEvaluatorFactory; + private final boolean skipCurrentRulesEvaluationOnClosedChanges; // Required assisted injected fields. private final Project.NameKey project; @@ -456,6 +459,7 @@ public class ChangeData { SubmitRuleEvaluator.Factory submitRuleEvaluatorFactory, @GerritServerId String gerritServerId, ChangeNumberVirtualIdAlgorithm virtualIdFunc, + @SkipCurrentRulesEvaluationOnClosedChanges Boolean skipCurrentRulesEvaluationOnClosedChange, @Assisted Project.NameKey project, @Assisted Change.Id id, @Assisted @Nullable Change change, @@ -477,6 +481,7 @@ public class ChangeData { this.submitRequirementsEvaluator = submitRequirementsEvaluator; this.submitRequirementsUtil = submitRequirementsUtil; this.submitRuleEvaluatorFactory = submitRuleEvaluatorFactory; + this.skipCurrentRulesEvaluationOnClosedChanges = skipCurrentRulesEvaluationOnClosedChange; this.project = project; this.legacyId = id; @@ -1151,6 +1156,9 @@ public class ChangeData { project(), getId().get()); return Collections.emptyList(); } + if (skipCurrentRulesEvaluationOnClosedChanges && change().isClosed()) { + return notes().getSubmitRecords(); + } records = submitRuleEvaluatorFactory.create(options).evaluate(this); submitRecords.put(options, records); if (!change().isClosed() && submitRecords.size() == 1) { |