Michel Zedler created DELTASPIKE-1449:
-----------------------------------------

             Summary: Broken quartz annotations and duplicate job details
                 Key: DELTASPIKE-1449
                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-1449
             Project: DeltaSpike
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: Scheduler
    Affects Versions: 1.9.1
            Reporter: Michel Zedler


This exemplary job class
{code:java}
package my.package

import org.apache.deltaspike.scheduler.api.Scheduled;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;

@Scheduled(cronExpression = "...", overrideOnStartup = true)
@DisallowConcurrentExecution
public class MyJob implements Job {
    ...
} {code}
using deltaspike 1.9.0 results in:
{noformat}
table: QRTZ_JOB_DETAILS

row 1:
JOB_NAME         = MyJob
JOB_CLASS_NAME   = my.package.MyJob
IS_NONCONCURRENT = 1 (true){noformat}
 

using deltaspike 1.9.1 or later 
+ a previously empty table results in:
{code:java}
table: QRTZ_JOB_DETAILS

row 1:
JOB_NAME         = my.package.MyJob
JOB_CLASS_NAME   = org.apache.deltaspike.scheduler.impl.JobAdapter
IS_NONCONCURRENT = 0 (false){code}
+ a non-empty table results in:

 

 
{code:java}
table: QRTZ_JOB_DETAILS

row 1: (inserted by a deployment using 1.9.0 or earlier)
JOB_NAME         = MyJob
JOB_CLASS_NAME   = my.package.MyJob
IS_NONCONCURRENT = 1 (true)

row 2:
JOB_NAME         = my.package.MyJob
JOB_CLASS_NAME   = org.apache.deltaspike.scheduler.impl.JobAdapter
IS_NONCONCURRENT = 0 (false){code}
 

I tracked this behaviour down to changes by DELTASPIKE-1369 that were released 
with 1.9.1
likely causing:

(1) annotations org.quartz.DisallowConcurrentExecution and 
org.quartz.PersistJobDataAfterExecution to be effectively ignored because 
Quartz checks for their presence in class 
org.apache.deltaspike.scheduler.impl.JobAdapter.

(2) consecutive deployments to produce duplicate jobs, triggers and concurrent 
executions.

I could not find any release notes, migration guides or open bugs concerning 
this topic.

Expected behaviour:

* deltaspike/quartz should update existing JobDetails instead of inserting 
duplicates (the JobDetails can be matched using old JOB_CLASS_NAME and new 
JOB_NAME - both are the fully qualified job class name)

* functionality of quartz annotations should be restored

I can provide more context if useful.

Are there any known workarounds?

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to