[cvs] expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility JobHandler.java

JCorporate Ltd jcorp at jcorp2.servlets.net
Wed May 12 17:32:58 PDT 2004


Update of /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility
In directory jcorp2.servlets.net:/tmp/cvs-serv17415/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility

Modified Files:
	JobHandler.java 
Log Message:
deleting an entry in from JobQueue did not remove it from the crontab. It does now.


Index: JobHandler.java
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/WEB-INF/src/com/jcorporate/expresso/core/utility/JobHandler.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** JobHandler.java	11 Feb 2004 06:14:08 -0000	1.25
--- JobHandler.java	13 May 2004 00:32:56 -0000	1.26
***************
*** 960,964 ****
                                              myServer.start();
                                          }
!                                     });
  
                              myServer.setCronAlarmEntry(cronID);
--- 960,964 ----
                                              myServer.start();
                                          }
!                                     }, myServer.getJobNumber());
  
                              myServer.setCronAlarmEntry(cronID);
***************
*** 1018,1022 ****
                                              myServer.run();
                                          }
!                                     });
  
                              myServer.setCronAlarmEntry(cronID);
--- 1018,1022 ----
                                              myServer.run();
                                          }
!                                     }, myServer.getJobNumber());
  
                              myServer.setCronAlarmEntry(cronID);
***************
*** 1060,1063 ****
--- 1060,1066 ----
                  cleanFinishedJobs();
              }
+             
+ 			removeCronJobForRemovedQueueEntry();
+ 			
          } catch (DBException de) {
              log.error(de);
***************
*** 1088,1091 ****
--- 1091,1113 ----
          }
      }
+     
+     /**
+      * Iterate through all crontab entries, checking to make sure they exist in the JobQueue. If it doesn't
+      * (probably because the JobQueue entry has been deleted), remove the crontab entry
+      *  
+      * @throws DBException
+      */
+ 	private void removeCronJobForRemovedQueueEntry() throws DBException	{
+ 		JobQueue jobQueue = new JobQueue();
+ 		for (Iterator i = m_cronMgr.getAllEntries().iterator(); i.hasNext();) {
+ 			CrontabEntry oneCronEntry = (CrontabEntry) i.next();
+ 			
+ 			jobQueue.clear();
+ 			jobQueue.setField(JobQueue.FLD_JOBNUMBER, oneCronEntry.getJobNumber());
+ 			if (!jobQueue.find()) {
+ 				m_cronMgr.removeCrontabEntry(oneCronEntry);
+ 			}
+ 		}
+ 	}
  
      private void doOperation(String oper) throws DBException



More information about the cvs mailing list