Program: 45284
Project: 45284
Buggy source:
public static void registerSiteCrawlers(final ThreadManager tm,final Timer t,final File crawlersFile){
  if (!crawlersFile.exists())   return;
  _crawlersFile=crawlersFile;
  _timer=t;
  _tm=tm;
  _lastReadTime=(new Date()).getTime();
  final GregorianCalendar cal=new GregorianCalendar();
  cal.set(Calendar.HOUR_OF_DAY,6);
  cal.set(Calendar.MINUTE,0);
  final Date d6am=cal.getTime();
  try {
    final Properties crawlers=new Properties();
    crawlers.load(new FileInputStream(crawlersFile));
    final java.util.Enumeration cList=crawlers.propertyNames();
    boolean runFutureOnly=false;
    final String skipOlderCrawls=crawlers.getProperty("String_Node_Str");
    if ((skipOlderCrawls != null) && skipOlderCrawls.equals("String_Node_Str"))     runFutureOnly=true;
    while (cList.hasMoreElements()) {
      final String cName=(String)cList.nextElement();
      if (cName.endsWith("String_Node_Str"))       continue;
      final String cPath=crawlers.getProperty(cName);
      if (cPath.indexOf(File.separator) != -1) {
        final String errMsg="String_Node_Str" + File.separator + "String_Node_Str"+ cName;
        if (_log.isErrorEnabled())         _log.error(errMsg);
        crawlers.remove(cName);
      }
 else {
        if (_log.isInfoEnabled())         _log.info("String_Node_Str" + cName + "String_Node_Str"+ cPath);
        final String cTimes=crawlers.getProperty(cName + "String_Node_Str");
        if (cTimes != null)         try {
          String[] times=cTimes.split("String_Node_Str");
          for (int i=0; i < times.length; i++)           if (times[i].equals("String_Node_Str"))           continue;
 else           Integer.parseInt(times[i]);
          times=cTimes.split("String_Node_Str");
          for (int i=0; i < times.length; i++) {
            if (times[i].equals("String_Node_Str"))             continue;
            cal.set(Calendar.HOUR_OF_DAY,Integer.parseInt(times[i]));
            final Date d=cal.getTime();
            t.scheduleAtFixedRate(new SiteCrawlerTask(cName,cPath,d),d,ONE_DAY);
          }
        }
 catch (        final NumberFormatException nfe) {
          if (_log.isErrorEnabled())           _log.error("String_Node_Str" + cTimes + "String_Node_Str"+ cName);
        }
 else         t.scheduleAtFixedRate(new SiteCrawlerTask(cName,cPath,d6am),d6am,ONE_DAY);
        if (runFutureOnly)         _crawledTimes.put(cName,new Date());
      }
    }
  }
 catch (  final java.io.IOException e) {
    System.err.println("String_Node_Str" + crawlersFile);
    System.err.println(e.toString());
    e.printStackTrace();
  }
}

Fixed version (ground truth):
public static void registerSiteCrawlers(final ThreadManager tm,final Timer t,final File crawlersFile){
  _crawlersFile=crawlersFile;
  _timer=t;
  _tm=tm;
  _lastReadTime=(new Date()).getTime();
  if (!crawlersFile.exists())   return;
  final GregorianCalendar cal=new GregorianCalendar();
  cal.set(Calendar.HOUR_OF_DAY,6);
  cal.set(Calendar.MINUTE,0);
  final Date d6am=cal.getTime();
  try {
    final Properties crawlers=new Properties();
    crawlers.load(new FileInputStream(crawlersFile));
    final java.util.Enumeration cList=crawlers.propertyNames();
    boolean runFutureOnly=false;
    final String skipOlderCrawls=crawlers.getProperty("String_Node_Str");
    if ((skipOlderCrawls != null) && skipOlderCrawls.equals("String_Node_Str"))     runFutureOnly=true;
    while (cList.hasMoreElements()) {
      final String cName=(String)cList.nextElement();
      if (cName.endsWith("String_Node_Str"))       continue;
      final String cPath=crawlers.getProperty(cName);
      if (cPath.indexOf(File.separator) != -1) {
        final String errMsg="String_Node_Str" + File.separator + "String_Node_Str"+ cName;
        if (_log.isErrorEnabled())         _log.error(errMsg);
        crawlers.remove(cName);
      }
 else {
        if (_log.isInfoEnabled())         _log.info("String_Node_Str" + cName + "String_Node_Str"+ cPath);
        final String cTimes=crawlers.getProperty(cName + "String_Node_Str");
        if (cTimes != null)         try {
          String[] times=cTimes.split("String_Node_Str");
          for (int i=0; i < times.length; i++)           if (times[i].equals("String_Node_Str"))           continue;
 else           Integer.parseInt(times[i]);
          times=cTimes.split("String_Node_Str");
          for (int i=0; i < times.length; i++) {
            if (times[i].equals("String_Node_Str"))             continue;
            cal.set(Calendar.HOUR_OF_DAY,Integer.parseInt(times[i]));
            final Date d=cal.getTime();
            t.scheduleAtFixedRate(new SiteCrawlerTask(cName,cPath,d),d,ONE_DAY);
          }
        }
 catch (        final NumberFormatException nfe) {
          if (_log.isErrorEnabled())           _log.error("String_Node_Str" + cTimes + "String_Node_Str"+ cName);
        }
 else         t.scheduleAtFixedRate(new SiteCrawlerTask(cName,cPath,d6am),d6am,ONE_DAY);
        if (runFutureOnly)         _crawledTimes.put(cName,new Date());
      }
    }
  }
 catch (  Exception e) {
    _log.error("String_Node_Str" + crawlersFile,e);
  }
  _log.info("String_Node_Str");
}