JobListener 'quartz_JobExecutionListener' threw exception:

Jmix version: 2.3.0
Jmix Studio plugin version: 2.3.0-241
IntelliJ IDEA 2024.1 (Ultimate Edition)

Hi Jmix team.

I’ve encountered problem with Quartz. That is to say,

org.quartz.SchedulerException: JobListener 'quartz_JobExecutionListener' threw exception: Cached value is not of required type [io.jmix.quartz.service.RunningJobsCache$RunningTriggersWrapper]: JobDetail 'DEFAULT.pessimisticLockExpiring':  jobClass: 'io.jmix.autoconfigure.pessimisticlock.job.PessimisticLockExpiringJob concurrentExectionDisallowed: false persistJobDataAfterExecution: false isDurable: true requestsRecovers: false
	at org.quartz.core.QuartzScheduler.notifyJobListenersToBeExecuted(QuartzScheduler.java:1929) ~[quartz-2.3.2.jar:na]
	at org.quartz.core.JobRunShell.notifyListenersBeginning(JobRunShell.java:324) ~[quartz-2.3.2.jar:na]
	at org.quartz.core.JobRunShell.run(JobRunShell.java:173) ~[quartz-2.3.2.jar:na]
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) ~[quartz-2.3.2.jar:na]
Caused by: java.lang.IllegalStateException: Cached value is not of required type [io.jmix.quartz.service.RunningJobsCache$RunningTriggersWrapper]: JobDetail 'DEFAULT.pessimisticLockExpiring':  jobClass: 'io.jmix.autoconfigure.pessimisticlock.job.PessimisticLockExpiringJob concurrentExectionDisallowed: false persistJobDataAfterExecution: false isDurable: true requestsRecovers: false
	at org.springframework.cache.support.AbstractValueAdaptingCache.get(AbstractValueAdaptingCache.java:68) ~[spring-context-6.1.8.jar:6.1.8]
	at io.jmix.quartz.service.RunningJobsCache.put(RunningJobsCache.java:72) ~[jmix-quartz-2.3.0.jar:na]
	at io.jmix.quartzflowui.listener.JobExecutionListener.jobToBeExecuted(JobExecutionListener.java:62) ~[jmix-quartz-flowui-2.3.0.jar:na]
	at org.quartz.core.QuartzScheduler.notifyJobListenersToBeExecuted(QuartzScheduler.java:1927) ~[quartz-2.3.2.jar:na]
	... 3 common frames omitted

after updating project’s jmix version from 2.2.3 to 2.3.0

So, can you provide any solution to fix this problem?

1 Like

Hello Abdulmalik.

Thanks for reporting this issue.

Unable to reproduce, but it looks like your cache has some values of obsolete type (it has been changed in 2.3).

Please describe your deployment schema:

  • Standalone server or cluster?
  • If cluster - are all nodes updated to the last Jmix version?
  • Are you using hazelcast?
    • Is it embedded or standalone?

Regards,
Ivan

1 Like

Thank you Ivan Gavrilov!

Deployment schema is standalone. From today it stopped giving these errors😂. But it throws another one like:

org.quartz.SchedulerException: JobListener ‘quartz_JobExecutionListener’ threw exception: Cannot serialize
at org.quartz.core.QuartzScheduler.notifyJobListenersToBeExecuted(QuartzScheduler.java:1929) ~[quartz-2.3.2.jar:na]
at org.quartz.core.JobRunShell.notifyListenersBeginning(JobRunShell.java:324) ~[quartz-2.3.2.jar:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:173) ~[quartz-2.3.2.jar:na]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) ~[quartz-2.3.2.jar:na]
Caused by: org.springframework.data.redis.serializer.SerializationException: Cannot serialize
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.serialize(JdkSerializationRedisSerializer.java:94) ~[spring-data-redis-3.2.6.jar:3.2.6]
at org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:41) ~[spring-data-redis-3.2.6.jar:3.2.6]
at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:292) ~[spring-data-redis-3.2.6.jar:3.2.6]
at org.springframework.data.redis.cache.RedisCache.serializeCacheValue(RedisCache.java:372) ~[spring-data-redis-3.2.6.jar:3.2.6]
at org.springframework.data.redis.cache.RedisCache.put(RedisCache.java:226) ~[spring-data-redis-3.2.6.jar:3.2.6]
at io.jmix.quartz.service.RunningJobsCache.put(RunningJobsCache.java:75) ~[jmix-quartz-2.3.0.jar:na]
at io.jmix.quartzflowui.listener.JobExecutionListener.jobToBeExecuted(JobExecutionListener.java:62) ~[jmix-quartz-flowui-2.3.0.jar:na]
at org.quartz.core.QuartzScheduler.notifyJobListenersToBeExecuted(QuartzScheduler.java:1927) ~[quartz-2.3.2.jar:na]
… 3 common frames omitted
Caused by: org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:64) ~[spring-core-6.1.8.jar:6.1.8]
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:33) ~[spring-core-6.1.8.jar:6.1.8]
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.serialize(JdkSerializationRedisSerializer.java:92) ~[spring-data-redis-3.2.6.jar:3.2.6]
… 10 common frames omitted
Caused by: java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload but received an object of type [io.jmix.quartz.service.RunningJobsCache$RunningTriggersWrapper]
at org.springframework.core.serializer.DefaultSerializer.serialize(DefaultSerializer.java:43) ~[spring-core-6.1.8.jar:6.1.8]
at org.springframework.core.serializer.Serializer.serializeToByteArray(Serializer.java:56) ~[spring-core-6.1.8.jar:6.1.8]
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:60) ~[spring-core-6.1.8.jar:6.1.8]
… 12 common frames omitted

over and over again. What solution would you suggest for this?

In fact it all started after I upgraded to Jmix version to 2.3.0

Hello,

Found an issue within RunningJobsCache.
Hotfix will be provided soon.

Regards,
Ivan

Hello,

Fixed in 2.3.1.

Regards,
Ivan

1 Like

Thanks a lot