Program: 45222
Project: 45222
Buggy source:
/** 
 * Reclassify news by reading in news from the entire archive since the beginning of time!!
 * @param iname      Issue to reclassify
 * @param srcs       Array of sources to classify from
 * @param allSrcs    Should all sources be used?
 * @param sd         Start date from which news should be classified (format is yyyymmdd)
 * @param ed         End date from which news should be classified   (format is yyyymmdd)
 * @param allDates   If true, all news items from the archive willbe classified.  The sdate and edate parameter values will be ignored
 * @param resetCats  If true, the categories will be reset andall existing news articles will be removed. If false, existing news articles will be retained. FIXME: This method should actually take a range of dates, a set of dates, or some other input like that.
 */
public void reclassifyNews(final String iname,final String[] srcs,final boolean allSrcs,final String sd,final String ed,final boolean allDates,final boolean resetCats) throws Exception {
  if (allDates) {
    final String s="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str";
    throw new Exception(s);
  }
  if (_reclassificationInProgress)   throw new Exception("String_Node_Str");
  try {
    _reclassificationInProgress=true;
    _concurrentProfileChange=false;
    final Issue issue=getIssue(iname);
    if (resetCats)     issue.clearNews();
    issue.readInCurrentRSSFeed();
    if (_log.isInfoEnabled())     _log.info("String_Node_Str");
    if (allSrcs) {
      int count=0;
      for (      Source s : issue.getMonitoredSources()) {
        if (concurrentProfileModification())         break;
        issue.reclassifyNews(s,allDates,sd,ed);
        count++;
      }
    }
 else {
      for (int i=0; i < srcs.length; i++) {
        if (concurrentProfileModification())         break;
        issue.reclassifyNews(getSourceById(srcs[i]),allDates,sd,ed);
      }
    }
    issue.freeRSSFeed();
  }
 catch (  final Exception e) {
    throw e;
  }
 finally {
    _reclassificationInProgress=false;
  }
}

Fixed version (ground truth):
/** 
 * Reclassify news by reading in news from the entire archive since the beginning of time!!
 * @param iname      Issue to reclassify
 * @param srcs       Array of sources to classify from
 * @param allSrcs    Should all sources be used?
 * @param sd         Start date from which news should be classified (format is yyyymmdd)
 * @param ed         End date from which news should be classified   (format is yyyymmdd)
 * @param allDates   If true, all news items from the archive willbe classified.  The sdate and edate parameter values will be ignored
 * @param resetCats  If true, the categories will be reset andall existing news articles will be removed. If false, existing news articles will be retained. FIXME: This method should actually take a range of dates, a set of dates, or some other input like that.
 */
public void reclassifyNews(final String iname,final String[] srcs,final boolean allSrcs,final String sd,final String ed,final boolean allDates,final boolean resetCats) throws Exception {
  if (allDates) {
    final String s="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str";
    throw new Exception(s);
  }
  if (_reclassificationInProgress)   throw new Exception("String_Node_Str");
  try {
    _reclassificationInProgress=true;
    _concurrentProfileChange=false;
    final Issue issue=getIssue(iname);
    if (resetCats)     issue.clearNews();
    issue.readInCurrentRSSFeed();
    if (_log.isInfoEnabled())     _log.info("String_Node_Str");
    if (allSrcs) {
      int count=0;
      for (      Source s : issue.getMonitoredSources()) {
        if (concurrentProfileModification())         break;
        issue.reclassifyNews(s,allDates,sd,ed);
        count++;
      }
    }
 else {
      for (int i=0; i < srcs.length; i++) {
        if (concurrentProfileModification())         break;
        issue.reclassifyNews(_db.getSource(Long.parseLong(srcs[i])),allDates,sd,ed);
      }
    }
    issue.freeRSSFeed();
  }
 catch (  final Exception e) {
    throw e;
  }
 finally {
    _reclassificationInProgress=false;
  }
}