[Amavisadmin-svn] SF.net SVN: amavisadmin: [26] amavisadmin/trunk/src/java/de/sreindl/ amavisadmin/
Status: Beta
Brought to you by:
streindl
From: <str...@us...> - 2007-01-18 19:52:47
|
Revision: 26 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=26&view=rev Author: streindl Date: 2007-01-18 11:52:45 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1638821: Database is updated In addition the next schedule for the job is displayed. Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-18 19:41:14 UTC (rev 25) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/BaseJob.java 2007-01-18 19:52:45 UTC (rev 26) @@ -26,6 +26,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import org.apache.taglibs.standard.lang.jstl.test.beans.Factory; import org.hibernate.HibernateException; import org.hibernate.Transaction; import org.quartz.CronTrigger; @@ -131,10 +132,10 @@ currentTrans = session.beginTransaction(); } // load data - de.sreindl.amavisadmin.db.Job job = + de.sreindl.amavisadmin.db.Job job = (de.sreindl.amavisadmin.db.Job) - session.get(de.sreindl.amavisadmin.db.Job.class, - context.getJobDetail().getName()); + session.get(de.sreindl.amavisadmin.db.Job.class, + context.getJobDetail().getName()); setData(job); excuteJob(context); } catch (Exception e) { @@ -161,7 +162,10 @@ } } setRunning(false); - log.info("Finishing job for class " + this.getClass().getName()); + updateJobRecord(); + log.debug("Finishing job for class " + this.getClass().getName()); + Date nextDate = context.getNextFireTime(); + log.info("Next invocaton for job " + getJobName() + " is on " + nextDate); if (resultException != null) { throw new JobExecutionException("Exception during processing of job " + getJobName(), resultException); } @@ -231,7 +235,7 @@ } /** - * Return an array list of configuration entries to be used for configuring + * Return an array list of configuration entries to be used for configuring * this job. * *@return an array list containing the configuration entries. @@ -254,4 +258,31 @@ } log.info("Stopping of old schedulers done"); } + + /** + * Update the job record of the current job. + * + * <p>As the session has been closed before, open a new one + */ + private void updateJobRecord() { + Session session = null; + Transaction trx = null; + try { + session = HibernateSessionFactory.getSession(); + trx = session.beginTransaction(); + de.sreindl.amavisadmin.db.Job dbJob = + (de.sreindl.amavisadmin.db.Job)session.load(de.sreindl.amavisadmin.db.Job.class, getJobName()); + + dbJob.setLastRun(new Date()); + session.update(dbJob); + trx.commit(); + } catch (HibernateException ex) { + log.error("Cannot update last run date for job " + getJobName()); + } finally { + if (trx != null && trx.isActive()) { + trx.rollback(); + } + HibernateSessionFactory.closeSession(); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |