Extract private method to schedule SCS from submit-event Makes it easier to reuse the private method when rescheduling. Solves: Jira GER-1715 Change-Id: I1e01a3db481dec258a9d3426f69b4bc69b6f637c
diff --git a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParsingQueue.java b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParsingQueue.java index c5d10b8..8f1f424 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParsingQueue.java +++ b/src/main/java/com/googlesource/gerrit/plugins/eventseiffel/parsing/EiffelEventParsingQueue.java
@@ -22,6 +22,7 @@ import com.google.gerrit.entities.Project; import com.google.gerrit.entities.Project.NameKey; import com.google.gerrit.entities.RefNames; +import com.google.gerrit.extensions.common.AccountInfo; import com.google.gerrit.extensions.events.GitReferenceUpdatedListener; import com.google.gerrit.extensions.events.RevisionCreatedListener; import com.google.gerrit.server.git.ProjectRunnable; @@ -111,30 +112,14 @@ } public void scheduleScsCreation(GitReferenceUpdatedListener.Event event) { - schedule( - new EventParsingWorker( - ParsingQueueTask.builder(SCS, event.getProjectName(), event.getRefName()) - .commit(event.getNewObjectId()) - .updater(event.getUpdater()) - .updateTime(TimeUtil.nowMs()) - .previousTip(event.getOldObjectId())) { - @Override - public void doRun() { - try { - eventParser.createAndScheduleMissingScss( - SourceChangeEventKey.scsKey( - event.getProjectName(), event.getRefName(), event.getNewObjectId()), - event.getOldObjectId(), - event.getUpdater(), - TimeUtil.nowMs()); - } catch (Exception e) { - logger.atSevere().withCause(e).log( - "Failed to create SCS from event for %s:%s:%s.", - event.getProjectName(), event.getRefName(), event.getNewObjectId()); - } - } - }); + scheduleScsCreation( + event.getProjectName(), + event.getRefName(), + event.getNewObjectId(), + event.getUpdater(), + TimeUtil.nowMs(), + event.getOldObjectId()); } public void scheduleScsCreation(String repoName, String branchRef) { @@ -198,6 +183,37 @@ pending.remove(worker); } + private void scheduleScsCreation( + String repoName, + String branchRef, + String commit, + AccountInfo updater, + Long submitTime, + String previousTip) { + schedule( + new EventParsingWorker( + ParsingQueueTask.builder(SCS, repoName, branchRef) + .commit(commit) + .updater(updater) + .updateTime(submitTime) + .previousTip(previousTip)) { + + @Override + public void doRun() { + try { + eventParser.createAndScheduleMissingScss( + SourceChangeEventKey.scsKey(repoName, branchRef, commit), + previousTip, + updater, + submitTime); + } catch (Exception e) { + logger.atSevere().withCause(e).log( + "Failed to create SCS from event for %s:%s:%s.", repoName, branchRef, commit); + } + } + }); + } + private void schedule(EventParsingWorker worker) { ScheduledFuture<?> future = pool.schedule(worker); if (future != null) {