You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2019/04/16 06:52:16 UTC

[karaf] branch master updated: [KARAF-6237] Fix reschedule action in the scheduler

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/master by this push:
     new aae23a9  [KARAF-6237] Fix reschedule action in the scheduler
     new 2a32c32  Merge pull request #813 from jbonofre/KARAF-6237
aae23a9 is described below

commit aae23a9deb7fe6137290d29147f9e71e83dd0a51
Author: Jean-Baptiste Onofré <jb...@apache.org>
AuthorDate: Mon Apr 15 15:32:07 2019 +0200

    [KARAF-6237] Fix reschedule action in the scheduler
---
 .../karaf/scheduler/core/QuartzScheduler.java      | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/scheduler/src/main/java/org/apache/karaf/scheduler/core/QuartzScheduler.java b/scheduler/src/main/java/org/apache/karaf/scheduler/core/QuartzScheduler.java
index 0a743b6..b9eb680 100644
--- a/scheduler/src/main/java/org/apache/karaf/scheduler/core/QuartzScheduler.java
+++ b/scheduler/src/main/java/org/apache/karaf/scheduler/core/QuartzScheduler.java
@@ -54,7 +54,7 @@ public class QuartzScheduler implements Scheduler {
     static final String DATA_MAP_OPTIONS = "QuartzJobScheduler.Options";
 
     /** Map key for non serializable context. */
-    static final String DATA_MAP_CONTEXT = "QuarteJobScheduler.Context";
+    static final String DATA_MAP_CONTEXT = "QuartzJobScheduler.Context";
 
     /** Map key for the logger. */
     static final String DATA_MAP_LOGGER = "QuartzJobScheduler.Logger";
@@ -246,28 +246,30 @@ public class QuartzScheduler implements Scheduler {
     }
 
     @Override
-    public void reschedule(String name, ScheduleOptions options) throws SchedulerError {
+    public void reschedule(String jobName, ScheduleOptions options) throws SchedulerError {
         final org.quartz.Scheduler s = this.scheduler;
-        if (name == null) {
+        if (jobName == null) {
             throw new IllegalArgumentException("Job name is mandatory");
         }
-        JobKey key = JobKey.jobKey(name);
+        JobKey key = JobKey.jobKey(jobName);
         if (key == null) {
-            throw new IllegalStateException("No job found with name " + name);
+            throw new IllegalStateException("No job found with name " + jobName);
         }
         try {
             JobDetail detail = s.getJobDetail(key);
 
-            Object job = detail.getJobDataMap().get(DATA_MAP_OBJECT);
+            final String contextKey = key.toString();
+            JobDataMap karafContext = ((KarafStdScheduler) s).getStorage().get(contextKey);
+            Object job = karafContext.get(QuartzScheduler.DATA_MAP_OBJECT);
 
             s.deleteJob(key);
 
             final InternalScheduleOptions opts = (InternalScheduleOptions)options;
-            Trigger trigger = opts.compile().withIdentity(name).build();
-            JobDataMap jobDataMap = this.initDataMap(name, job, opts);
-            detail = createJobDetail(name, jobDataMap, opts.canRunConcurrently);
+            Trigger trigger = opts.compile().withIdentity(jobName).build();
+            JobDataMap jobDataMap = this.initDataMap(jobName, job, opts);
+            detail = createJobDetail(jobName, jobDataMap, opts.canRunConcurrently);
 
-            logger.debug("Update job scheduling {} with name {} and trigger {}", job, name, trigger);
+            logger.debug("Update job scheduling {} with name {} and trigger {}", job, jobName, trigger);
             s.scheduleJob(detail, trigger);
         } catch (SchedulerException e) {
             throw new SchedulerError(e);