InvalidClassException du to incompatible serialVerionUID number when migrating from BPMS 6.1 to RHPAM 7.x with active Quartz timers
Issue
We have used BPMS 6.1 configured with Quartz for timers. We have performed the database updates to migrate to RHPAM 7.x, including the Quartz schema update script to migrate from Quartz 1.8.x to Quartz 2.3. For newly created process instances, the timers work as expected. However, upon executing timers that already existed in the database prior to the migration, the execution fails with the following ERROR:
15:20:29,982 ERROR [org.quartz.impl.jdbcjobstore.JobStoreCMT] (QuartzScheduler_jBPMClusteredScheduler-mweiler1603920027749_MisfireHandler) MisfireHandler: Error handling misfires: Couldn't store trigger 'jbpm.2-3-4_trigger' for 'jbpm.2-3-4' job:Couldn't retrieve job because the BLOB couldn't be deserialized: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356: org.quartz.JobPersistenceException: Couldn't store trigger 'jbpm.2-3-4_trigger' for 'jbpm.2-3-4' job:Couldn't retrieve job because the BLOB couldn't be deserialized: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356 [See nested exception: org.quartz.JobPersistenceException: Couldn't retrieve job because the BLOB couldn't be deserialized: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356 [See nested exception: java.io.InvalidClassException: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356]]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1229)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doUpdateOfMisfiredTrigger(JobStoreSupport.java:1042)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:991)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3264)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:4012)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:4033)
Caused by: org.quartz.JobPersistenceException: Couldn't retrieve job because the BLOB couldn't be deserialized: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356 [See nested exception: java.io.InvalidClassException: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob(JobStoreSupport.java:1399)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1210)
... 5 more
Caused by: java.io.InvalidClassException: org.drools.core.time.SelfRemovalJobContext; local class incompatible: stream classdesc serialVersionUID = 4974155438759730703, local class serialVersionUID = 614425985040796356
What can be done to address this issue?
Environment
- Red Hat Process Automation Manager (RHPAM)
- 7.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.