Description of problem: * 1.1.0 was released Oct 2008 * ClusterManagerJob was renamed to CloudManagerJob in Dec 2008 * StartupServlet has no mechanism for removing Jobs that no longer exist, it only knows how to reschedule them (to accommodate changes in their frequency or delay) Version-Release number of selected component (if applicable): 1.1.0 Steps to Reproduce: 1. Install 1.1.0 2. Upgrade to 1.3.0 3. Tail server log Actual results: Server log will report the following... 2010-04-30 09:09:55,207 ERROR [org.quartz.impl.jdbcjobstore.JobStoreCMT] MisfireHandler: Error handling misfires: Couldn't store trigger 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob org.quartz.JobPersistenceException: Couldn't store trigger 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob [See nested exception: java.lang.ClassNotFoundException: No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob] at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1246) at org.quartz.impl.jdbcjobstore.JobStoreSupport.doUpdateOfMisfiredTrigger(JobStoreSupport.java:1014) at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:956) at org.quartz.impl.jdbcjobstore.JobStoreSupport.doRecoverMisfires(JobStoreSupport.java:3126) at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:3887) at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3907) Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:306) at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:521) at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at org.quartz.simpl.InitThreadContextClassLoadHelper.loadClass(InitThreadContextClassLoadHelper.java:75) at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:119) at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectJobDetail(StdJDBCDelegate.java:897) at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeTrigger(JobStoreSupport.java:1202) ... 5 more Expected results: Server startup should be fine, no errors should be reported Additional info: Temporary workaround for customers would be to remove these stale entries from the Quartz tables by executing the following SQL against their database: DELETE FROM rhq_qrtz_triggers WHERE trigger_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob'; DELETE FROM rhq_qrtz_simple_triggers WHERE trigger_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob'; DELETE FROM rhq_qrtz_job_details WHERE job_name = 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob';
commit 56eb99b9dfc6029e54e887fd1d670af4377e65ef remove references to deprecated job 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' upon server startup
Verified on JON build# 210 (http://hudson-qe.rhq.rdu.redhat.com:8080/job/jon/210/) Steps: 1) Install JON 2.1 2) Upgrade to JON 2.4 (JON build# 210) 3) Tail server log Server startup fine without error/exception like: ERROR [org.quartz.impl.jdbcjobstore.JobStoreCMT] MisfireHandler: Error handling misfires: Couldn't store trigger 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' for 'org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob' job:No ClassLoaders found for: org.rhq.enterprise.server.scheduler.jobs.ClusterManagerJob
Mass-closure of verified bugs against JON.