-
Type: Bug
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 5.4.1
-
Fix Version/s: 5.5
-
Component/s: Clustering
The quartz scheduler obtained by the nuxeo application is shared with the JBoss. This is an impact of the class path loading configuration put in the deployment descriptor jboss-app.xml :
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
The quartz classes are taken from the common lib folder instead of the nuxeo EAR. The scheduler is started by the quartz resource adapator that bind quartz with message beans (JMS). The jobs launched by nuxeo are loaded in the context of that adaptor that do not have access to the nuxeo's classpath.
java.lang.ClassNotFoundException: org.nuxeo.ecm.platform.scheduler.core.EventJob from BaseClassLoader@2434887{VFSClassLoaderPolicy@f4e983a{name=vfszip:/home/jboss/dev/servers/nuxeo-newlea-server/server/default/deploy/quartz-ra.rar/ domain=ClassLoaderDomain@55eb1db2{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@7eb05acd} roots=[MemoryContextHandler@1894518703[path= context=vfsmemory://3j011-6u2jn1-gobla5z0-1-goblamz0-24 real=vfsmemory://3j011-6u2jn1-gobla5z0-1-goblamz0-24], DelegatingHandler@435807252[path=quartz-ra.rar context=file:/home/jboss/dev/servers/nuxeo-newlea-server/server/default/deploy/ real=file:/home/jboss/dev/servers/nuxeo-newlea-server/server/default/deploy/quartz-ra.rar], DelegatingHandler@1693248094[path=quartz-ra.rar/quartz-ra.jar context=file:/home/jboss/dev/servers/nuxeo-newlea-server/server/default/deploy/ real=file:/home/jboss/dev/servers/nuxeo-newlea-server/server/default/deploy/quartz-ra.rar/quartz-ra.jar]] delegates=null exported=[org.jboss.resource.adapter.quartz.inflow, META-INF] <IMPORT-ALL>NON_EMPTY}} at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.quartz.simpl.InitThreadContextClassLoadHelper.loadClass(InitThreadContextClassLoadHelper.java:74) at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:118) at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectJobDetail(StdJDBCDelegate.java:947) at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob(JobStoreSupport.java:1021) at org.quartz.impl.jdbcjobstore.JobStoreSupport.triggerFired(JobStoreSupport.java:1818) at org.quartz.impl.jdbcjobstore.JobStoreCMT.triggerFired(JobStoreCMT.java:1261) at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:308)