CAMEL-7809: Ensure the cron schedule is updated when the job is rescheduled
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6ab37afa Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6ab37afa Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6ab37afa Branch: refs/heads/master Commit: 6ab37afa16adbf73f368ac4ff7ae513864b38107 Parents: 6a15b8e Author: David Riseley <d...@openanswers.co.uk> Authored: Tue Mar 28 09:52:53 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Mar 28 11:28:23 2017 +0200 ---------------------------------------------------------------------- .../quartz2/QuartzScheduledPollConsumerScheduler.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/6ab37afa/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java ---------------------------------------------------------------------- diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java b/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java index 5192a56..6213903 100644 --- a/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java +++ b/components/camel-quartz2/src/main/java/org/apache/camel/pollconsumer/quartz2/QuartzScheduledPollConsumerScheduler.java @@ -168,11 +168,11 @@ public class QuartzScheduledPollConsumerScheduler extends ServiceSupport impleme id = "trigger-" + getCamelContext().getUuidGenerator().generateUuid(); } - Trigger existingTrigger = null; + CronTrigger existingTrigger = null; TriggerKey triggerKey = null; if (triggerId != null && triggerGroup != null) { triggerKey = new TriggerKey(triggerId, triggerGroup); - existingTrigger = quartzScheduler.getTrigger(triggerKey); + existingTrigger = (CronTrigger)quartzScheduler.getTrigger(triggerKey); } // Is an trigger already exist for this triggerId ? @@ -208,8 +208,11 @@ public class QuartzScheduledPollConsumerScheduler extends ServiceSupport impleme QuartzHelper.updateJobDataMap(getCamelContext(), job, null); LOG.debug("Updated jobData map to {}", jobData); + + // Ensure the cron schedule is updated + CronTrigger newTrigger = existingTrigger.getTriggerBuilder().withSchedule(CronScheduleBuilder.cronSchedule(getCron()).inTimeZone(getTimeZone())).build(); - quartzScheduler.rescheduleJob(triggerKey, existingTrigger); + quartzScheduler.rescheduleJob(triggerKey, newTrigger); } }