Program: 168186
Project: 168186
Buggy source:
public void wordCount(IProgressMonitor monitor,List<File> inputFiles,List<String> dictionaryFile,String stopWordsFile,String outputFile,String delimiters,boolean doLower,boolean doLiwcStemming,boolean doSnowBallStemming,boolean doSpss,boolean doWordDistribution,boolean stemDictionary,File oFile,File sFile) throws IOException {
  if (delimiters == null || delimiters.equals("String_Node_Str"))   this.delimiters="String_Node_Str";
 else   this.delimiters=delimiters;
  this.doLower=doLower;
  this.doLiwcStemming=doLiwcStemming;
  this.doSpss=doSpss;
  this.doWordDistribution=doWordDistribution;
  this.doSnowballStemming=doSnowBallStemming;
  this.stemDictionary=stemDictionary;
  if (!this.weighted)   this.doLiwcStemming=true;
  appendLog("String_Node_Str");
  if (stopWordsFile.equals(null) || stopWordsFile.equals("String_Node_Str"))   this.doStopWords=false;
 else   this.doStopWords=true;
  long startTime=System.currentTimeMillis();
  monitor.subTask("String_Node_Str");
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  buildCategorizer(dictionaryFile);
  logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  if (doStopWords) {
    startTime=System.currentTimeMillis();
    monitor.subTask("String_Node_Str");
    stopWordSetBuild(new File(stopWordsFile));
    logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
    appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  buildOutputFile(oFile);
  monitor.worked(2);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  if (doSpss) {
    monitor.subTask("String_Node_Str" + sFile.getName() + "String_Node_Str");
    buildSpssFile(sFile);
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  for (  File inputFile : inputFiles) {
    if (inputFile.getAbsolutePath().contains("String_Node_Str"))     continue;
    monitor.subTask("String_Node_Str" + inputFile);
    countWords(inputFile,oFile,sFile);
    monitor.worked(1);
  }
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  if (this.weighted)   TacitUtility.createReadMe(outputFile,"String_Node_Str");
 else   TacitUtility.createReadMe(outputFile,"String_Node_Str");
  monitor.worked(5);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
}

Fixed version (ground truth):
public void wordCount(IProgressMonitor monitor,List<File> inputFiles,List<String> dictionaryFile,String stopWordsFile,String outputFile,String delimiters,boolean doLower,boolean doLiwcStemming,boolean doSnowBallStemming,boolean doSpss,boolean doWordDistribution,boolean stemDictionary,File oFile,File sFile) throws IOException {
  if (delimiters == null || delimiters.equals("String_Node_Str"))   this.delimiters="String_Node_Str";
 else   this.delimiters=delimiters;
  this.doLower=doLower;
  this.doLiwcStemming=doLiwcStemming;
  this.doSpss=doSpss;
  this.doWordDistribution=doWordDistribution;
  this.doSnowballStemming=doSnowBallStemming;
  this.stemDictionary=stemDictionary;
  if (!this.weighted)   this.doLiwcStemming=true;
  appendLog("String_Node_Str");
  if (stopWordsFile.equals(null) || stopWordsFile.equals("String_Node_Str") || !this.weighted)   this.doStopWords=false;
 else   this.doStopWords=true;
  long startTime=System.currentTimeMillis();
  monitor.subTask("String_Node_Str");
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  buildCategorizer(dictionaryFile);
  logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  if (doStopWords) {
    startTime=System.currentTimeMillis();
    monitor.subTask("String_Node_Str");
    stopWordSetBuild(new File(stopWordsFile));
    logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
    appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  buildOutputFile(oFile);
  monitor.worked(2);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  if (doSpss) {
    monitor.subTask("String_Node_Str" + sFile.getName() + "String_Node_Str");
    buildSpssFile(sFile);
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  for (  File inputFile : inputFiles) {
    if (inputFile.getAbsolutePath().contains("String_Node_Str"))     continue;
    monitor.subTask("String_Node_Str" + inputFile);
    countWords(inputFile,oFile,sFile);
    monitor.worked(1);
  }
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.worked(10);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
  monitor.subTask("String_Node_Str");
  if (this.weighted)   TacitUtility.createReadMe(outputFile,"String_Node_Str");
 else   TacitUtility.createReadMe(outputFile,"String_Node_Str");
  monitor.worked(5);
  if (monitor.isCanceled()) {
    throw new OperationCanceledException();
  }
}