System.err.println("DROPPING CRON JOB " + job);
  public static List parse(Properties props) {      Hashtable jobs = new Hashtable ();      Enumeration e = props.keys ();      while (e.hasMoreElements ()) {         String key = (String) e.nextElement ();         if (!key.startsWith ("cron."))            continue;         try {            StringTokenizer st = new StringTokenizer (key.trim(), ".");            st.nextElement ();            String jobName = st.nextToken ();             if (jobName == null || jobName.equals(""))                continue;            String jobSpec = st.nextToken ();            if (jobSpec==null || jobSpec.equals("")) // might happen with cron.testname. = XXX               continue;            CronJob job = (CronJob) jobs.get (jobName);            if (job==null) {               job = new CronJob (jobName);               jobs.put (jobName, job);            }            String value = props.getProperty (key);            if (jobSpec.equalsIgnoreCase("function")) {               job.setFunction(value);            } else if (jobSpec.equalsIgnoreCase("year")) {               job.parseYear (value);            } else if (jobSpec.equalsIgnoreCase("month")) {               job.parseMonth (value);            } else if (jobSpec.equalsIgnoreCase("day")) {               job.parseDay (value);            } else if (jobSpec.equalsIgnoreCase("weekday")) {               job.parseWeekDay (value);            } else if (jobSpec.equalsIgnoreCase("hour")) {               job.parseHour (value);            } else if (jobSpec.equalsIgnoreCase("minute")) {               job.parseMinute (value);            } else if (jobSpec.equalsIgnoreCase("timeout")) {               job.parseTimeout (value);            }         } catch (NoSuchElementException nsee) {         }      }      Iterator it = jobs.values().iterator();      while (it.hasNext()) {          CronJob job = (CronJob) it.next();          if (job.getFunction() == null) {              System.err.println("DROPPING CRON JOB " + job);              it.remove();          }      }      List jobVec = new ArrayList (jobs.values());      System.err.println("GOT CRON JOB LIST: " + jobVec);      return sort (jobVec);   }