diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java index cadd55c5da..86ce3b99ff 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java @@ -391,16 +391,20 @@ public class Submit implements RestModifyView, ReviewDb db = dbProvider.get(); ChangeData cd = changeDataFactory.create(db, rsrc.getControl()); - List submitRecords = checkSubmitRule(cd, - rsrc.getPatchSet(), force); + List changesByTopic = queryProvider.get().byTopicOpen(topic); + String problems = problemsForSubmittingChanges(changesByTopic, caller); + if (problems != null) { + throw new ResourceConflictException(problems); + } Change change = rsrc.getChange(); ChangeUpdate update = updateFactory.create(rsrc.getControl(), timestamp); + + List submitRecords = checkSubmitRule(cd, + rsrc.getPatchSet(), force); update.submit(submitRecords); db.changes().beginTransaction(change.getId()); - - List changesByTopic = queryProvider.get().byTopicOpen(topic); try { BatchMetaDataUpdate batch = approve(rsrc, update, caller, timestamp); // Write update commit after all normalized label commits.