Program: 168215
Project: 168215
Buggy source:
public int invokeWordCount(String[] inputFiles,String dictionaryFile,String stopWordsFile,String outputFile,boolean doStemming) throws IOException {
  long startTime=System.currentTimeMillis();
  File dFile=null;
  useDict=false;
  doStemming=true;
  wordMat=new HashMap<String,Map<String,Double>>();
  stopWordSet=new HashSet<String>();
  keys=new TreeSet<String>();
  if (inputFiles == null) {
    logger.warning("String_Node_Str");
    return -2;
  }
  if (!dictionaryFile.isEmpty() && !dictionaryFile.equals("String_Node_Str")) {
    useDict=true;
    dFile=new File(dictionaryFile);
    if (!dFile.exists() || dFile.isDirectory()) {
      logger.warning("String_Node_Str");
      return -3;
    }
  }
  if (stopWordsFile.equals(null) || stopWordsFile.equals("String_Node_Str"))   this.doStopWords=false;
 else {
    this.doStopWords=true;
    File sFile=new File(stopWordsFile);
    if (!sFile.exists() || sFile.isDirectory()) {
      logger.warning("String_Node_Str");
      return -4;
    }
 else {
      startTime=System.currentTimeMillis();
      stopWordSetBuild(stopWordsFile);
      logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
      appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
    }
  }
  File oFile=new File(outputFile + "String_Node_Str");
  if (outputFile == "String_Node_Str" || oFile.isDirectory()) {
    logger.warning("String_Node_Str");
    return -5;
  }
  if (useDict) {
    dict=new HashSet<String>();
    buildDictionary(dFile);
  }
  for (  String inputFile : inputFiles) {
    String input=inputFile;
    inputFile="String_Node_Str" + inputFile;
    if (inputFile.contains("String_Node_Str"))     continue;
    Map<String,Double> words=new HashMap<String,Double>();
    File iFile=new File(inputFile);
    if (!iFile.exists() || iFile.isDirectory()) {
      logger.warning("String_Node_Str" + inputFile);
      return -2;
    }
    countWords(inputFile,words);
    wordMat.put(input,words);
  }
  writeToOutput(outputFile);
  writeReadMe(outputFile);
  return 0;
}

Fixed version (ground truth):
public int invokeWordCount(String[] inputFiles,String dictionaryFile,String stopWordsFile,String outputFile,boolean doStemming) throws IOException {
  long startTime=System.currentTimeMillis();
  File dFile=null;
  useDict=false;
  doStemming=true;
  wordMat=new HashMap<String,Map<String,Double>>();
  stopWordSet=new HashSet<String>();
  keys=new TreeSet<String>();
  if (inputFiles == null) {
    logger.warning("String_Node_Str");
    return -2;
  }
  if (!dictionaryFile.isEmpty() && !dictionaryFile.equals("String_Node_Str")) {
    useDict=true;
    dFile=new File(dictionaryFile);
    if (!dFile.exists() || dFile.isDirectory()) {
      logger.warning("String_Node_Str");
      return -3;
    }
  }
  if (stopWordsFile.equals(null) || stopWordsFile.equals("String_Node_Str"))   this.doStopWords=false;
 else {
    this.doStopWords=true;
    File sFile=new File(stopWordsFile);
    if (!sFile.exists() || sFile.isDirectory()) {
      logger.warning("String_Node_Str");
      return -4;
    }
 else {
      startTime=System.currentTimeMillis();
      stopWordSetBuild(stopWordsFile);
      logger.info("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
      appendLog("String_Node_Str" + (System.currentTimeMillis() - startTime) + "String_Node_Str");
    }
  }
  File oFile=new File(outputFile + "String_Node_Str");
  if (outputFile == "String_Node_Str" || oFile.isDirectory()) {
    logger.warning("String_Node_Str");
    return -5;
  }
  if (useDict) {
    dict=new HashSet<String>();
    buildDictionary(dFile);
  }
  for (  String inputFile : inputFiles) {
    String input=inputFile;
    if (inputFile.contains("String_Node_Str"))     continue;
    Map<String,Double> words=new HashMap<String,Double>();
    File iFile=new File(inputFile);
    if (!iFile.exists() || iFile.isDirectory()) {
      logger.warning("String_Node_Str" + inputFile);
      return -2;
    }
    countWords(inputFile,words);
    wordMat.put(input,words);
  }
  writeToOutput(outputFile);
  writeReadMe(outputFile);
  return 0;
}