Running multiple cron jobs using the same job class issue

124 views
Skip to first unread message

Satya Mohapatra

unread,
Jul 14, 2015, 6:53:07 AM7/14/15
to dot...@googlegroups.com
Hi,

I am using dotcms osgi job plugin to schedule jobs.Running a single job is working fine.But when I create multiple cron jobs using the same job class,I get the below error,
Can anyone advice/comment here. Below is the code.The first scheduling of job works fine but error arises when second job is scheduled.

Error while starting bundle: file:/C:/D%20Drive/core-3.1/core-3.1/build/war/dotcms/WEB-INF/felix/load/VaultFetchFiles-Plugin-1.0.jar: com.dotcms.repackage.org.osgi.framework.BundleException: Activator start error in bundle vaultSharedDriveJobOSGI [8]
.
com.dotcms.repackage.org.osgi.framework.BundleException: Activator start error in bundle vaultSharedDriveJobOSGI [8].
        at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
        at com.dotcms.repackage.org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1175)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1153)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:458)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:263)
Caused by: java.lang.NullPointerException
        at com.dotmarketing.osgi.UrlOsgiClassLoader.reload(UrlOsgiClassLoader.java:212)
        at com.dotmarketing.osgi.UrlOsgiClassLoader.reload(UrlOsgiClassLoader.java:97)
        at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:282)
        at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:250)
        at com.dotmarketing.osgi.GenericBundleActivator.scheduleQuartzJob(GenericBundleActivator.java:431)
        at com.mhf.vault.fetchfiles.activator.FetchFilesJobActivator.start(FetchFilesJobActivator.java:69)
        at com.dotcms.repackage.org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
        ... 6 more



public class FetchFilesJobActivator extends GenericBundleActivator {

    private static final String TRUE = "true";
public final static String JOB_NAME = "SharedDrive Job";
    public final static String JOB_CLASS = "FetchFilesJob";
    public final static String JOB_GROUP = "User Jobs";

    private static final Logger logger = Logger.getLogger(FetchFilesJobActivator.class);
    

    public void start ( BundleContext context ) throws Exception {

   
    logger.info("***************** Inside Activator for FetchFilesJob framework **************************");
    //The initialization/publishing fails now in 2.5.6 .Hopefully will be resolved when we upgrade to 3.* dotCMS
    initializeServices( context );
    //publishBundleServices( context );
   
    String configurationFile = VaultFetchFileConstants.FETCHFILES_CONFIG;
    Configuration configuration = new Configuration();
    configuration = GetFilesJobUtil.readSetConfiguration(GetFilesJobUtil.fetchConfigFromFolder(configurationFile),Configuration.class);
   
    Map<String, Object> params = new HashMap<String, Object>();
   
    if(configuration != null 
    && configuration.getSharedDrives() != null 
    && configuration.getSharedDrives().getDrive() != null 
    && !(configuration.getSharedDrives().getDrive().isEmpty()))
    {
    for(Drive drive: configuration.getSharedDrives().getDrive())
    {
    if(drive.getCriteria() != null && drive.getCriteria().getCriteriaValues() != null)
    {
    for(CriteriaValues cValues:drive.getCriteria().getCriteriaValues())
    {
    if (cValues.getConfigured().equalsIgnoreCase(TRUE))
{
params.put("param1", cValues.getcID().trim());
params.put("param2", drive.getGroupName().trim());
params.put("param3", cValues.getDirectoryPath().trim());
params.put("param4", cValues.getFromDate().trim());
params.put("param5", cValues.getToDate().trim());
String job_name = JOB_NAME+cValues.getcID().trim();
CronScheduledTask cronScheduledTask = new CronScheduledTask(job_name, JOB_GROUP, job_name, JOB_CLASS,
new Date(), null, CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW,
params,cValues.getCronExpression());
//Schedule our custom job
       scheduleQuartzJob( cronScheduledTask );// Multiple job set up calling the same class but different job names
}
    }
   
    }
   
    }
    }

   
   
Thanks
Satya

Venkatesh D

unread,
Nov 23, 2015, 6:12:07 PM11/23/15
to dotCMS User Group
I have implemented a dynamic plugin in dotcms 3.2 and scheduled a cron job.

private final static String STUDIES_JOB = "Study Job";
private final static String STUDIES_JOB = "com.plugins.dynamic.StuiesJob";
private final static String STUDIES_GROUP = "Studies";

private final static String JOB_SCHEDULE = "0 5 0/1 * * ?";
public void start(BundleContext context) throws Exception {
registerTrials(context);

// Job params
Map<String, Object> params = new HashMap<String, Object>();

// Creating our custom Quartz Job
CronScheduledTask cronScheduledTask = new CronScheduledTask(
STUDIES_JOB, STUDIES_GROUP, STUDIES_JOB,
STUDIES_JOB, new Date(), null,
CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW, params,
JOB_SCHEDULE);

scheduleQuartzJob(cronScheduledTask); 
}




java.lang.NullPointerException
2015-11-20 16:04:40,279 ERROR com.liferay.portal.ejb.PortletManagerImpl - null Nested exception: null
com.dotcms.repackage.org.dom4j.DocumentException: null Nested exception: null
        at com.dotcms.repackage.org.dom4j.io.SAXReader.read(SAXReader.java:484)
        at com.dotcms.repackage.org.dom4j.io.SAXReader.read(SAXReader.java:365)
        at com.liferay.portal.ejb.PortletManagerImpl._readPortletXML(PortletManagerImpl.java:510)
        at com.liferay.portal.ejb.PortletManagerImpl.initWAR(PortletManagerImpl.java:219)
        at com.liferay.portal.ejb.PortletManagerUtil.initWAR(PortletManagerUtil.java:154)
        at com.dotmarketing.osgi.GenericBundleActivator.registerPortlets(GenericBundleActivator.java:320)
        at com.plugins.dynamic.trials.controller.Activator.registerTrials(Activator.java:74)
        at com.plugins.dynamic.trials.controller.Activator.start(Activator.java:36)
        at com.dotcms.repackage.org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
        at com.dotcms.repackage.org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1175)
       at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1153)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:458)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:263)
Nested exception:
java.lang.NullPointerException
        at com.dotcms.repackage.org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:98)
        at com.dotcms.repackage.org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)
        at com.dotcms.repackage.org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)
        at com.dotcms.repackage.org.dom4j.io.SAXReader.read(SAXReader.java:435)
        at com.dotcms.repackage.org.dom4j.io.SAXReader.read(SAXReader.java:365)
        at com.liferay.portal.ejb.PortletManagerImpl._readPortletXML(PortletManagerImpl.java:510)
        at com.liferay.portal.ejb.PortletManagerImpl.initWAR(PortletManagerImpl.java:219)
        at com.liferay.portal.ejb.PortletManagerUtil.initWAR(PortletManagerUtil.java:154)
        at com.dotmarketing.osgi.GenericBundleActivator.registerPortlets(GenericBundleActivator.java:320)
        at com.plugins.dynamic.trials.controller.Activator.registerTrials(Activator.java:74)
        at com.plugins.dynamic.trials.controller.Activator.start(Activator.java:36)
        at com.dotcms.repackage.org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
        at com.dotcms.repackage.org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
        at com.dotcms.repackage.org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1175)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1153)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:458)
        at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:263)
DEBUG: DYNAMIC WIRE: [17.0] osgi.wiring.package; (osgi.wiring.package=*) -> [0]
DEBUG: DYNAMIC WIRE: [17.0] osgi.wiring.package; (osgi.wiring.package=*) -> [0]
Reply all
Reply to author
Forward
0 new messages