From e25aa9d4ccd90719c95f869d49d5ab7d3bd58a69 Mon Sep 17 00:00:00 2001 From: David Riseley Date: Tue, 28 Mar 2017 09:52:53 +0100 Subject: [PATCH] CAMEL-7809: Ensure the cron schedule is updated when the job is rescheduled --- .../quartz2/QuartzScheduledPollConsumerScheduler.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 5192a568fe93a..62139032fb898 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 @@ protected void doStart() throws Exception { 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 @@ protected void doStart() throws Exception { 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); } }