Program: 53393
Project: 53393
Buggy source:
/** 
 * Generates the right options for dictionary-based NER tagging: Dictionary features by means of the   {@link StatisticalNameFinder} or using the{@link DictionaryNameFinder} or a combination of those with the{@link NumericNameFinder}.
 * @param lang
 * @param model
 * @param features
 * @param beamsize
 * @param dictOption
 * @param dictPath
 * @param ruleBasedOption
 * @throws IOException
 */
private void annotateOptions(Properties properties,TrainingParameters params) throws IOException {
  String ruleBasedOption=properties.getProperty("String_Node_Str");
  String dictPath=InputOutputUtils.getDictPath(params);
  String dictOption=InputOutputUtils.getDictOption(params);
  if (!dictPath.equals(CLI.DEFAULT_DICT_PATH)) {
    if (!ruleBasedOption.equals(CLI.DEFAULT_LEXER)) {
      lexerFind=true;
    }
    dictionaries=new Dictionaries(dictPath);
    if (!dictOption.equals(CLI.DEFAULT_DICT_OPTION)) {
      dictFinder=new DictionariesNameFinder(dictionaries,nameFactory);
      if (dictOption.equalsIgnoreCase("String_Node_Str")) {
        dictTag=true;
        postProcess=false;
        statistical=false;
      }
 else       if (dictOption.equalsIgnoreCase("String_Node_Str")) {
        nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
        statistical=true;
        postProcess=true;
        dictTag=false;
      }
    }
 else {
      nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
      statistical=true;
      dictTag=false;
      postProcess=false;
    }
  }
 else   if (!ruleBasedOption.equals(CLI.DEFAULT_LEXER)) {
    lexerFind=true;
    statistical=true;
    dictTag=false;
    postProcess=false;
    nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
  }
 else {
    lexerFind=false;
    statistical=true;
    dictTag=false;
    postProcess=false;
    nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
  }
}

Fixed version (ground truth):
/** 
 * Generates the right options for dictionary-based NER tagging: Dictionary features by means of the   {@link StatisticalNameFinder} or using the{@link DictionaryNameFinder} or a combination of those with the{@link NumericNameFinder}.
 * @param lang
 * @param model
 * @param features
 * @param beamsize
 * @param dictOption
 * @param dictPath
 * @param ruleBasedOption
 * @throws IOException
 */
private void annotateOptions(Properties properties,TrainingParameters params) throws IOException {
  String ruleBasedOption=properties.getProperty("String_Node_Str");
  String dictFeature=InputOutputUtils.getDictionaryFeatures(params);
  String dictOption=InputOutputUtils.getDictOption(params);
  if (dictFeature.equals("String_Node_Str")) {
    if (!ruleBasedOption.equals(CLI.DEFAULT_LEXER)) {
      lexerFind=true;
    }
    String dictPath=InputOutputUtils.getDictPath(params);
    dictionaries=new Dictionaries(dictPath);
    if (!dictOption.equals(CLI.DEFAULT_DICT_OPTION)) {
      dictFinder=new DictionariesNameFinder(dictionaries,nameFactory);
      if (dictOption.equalsIgnoreCase("String_Node_Str")) {
        dictTag=true;
        postProcess=false;
        statistical=false;
      }
 else       if (dictOption.equalsIgnoreCase("String_Node_Str")) {
        nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
        statistical=true;
        postProcess=true;
        dictTag=false;
      }
    }
 else {
      nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
      statistical=true;
      dictTag=false;
      postProcess=false;
    }
  }
 else   if (!ruleBasedOption.equals(CLI.DEFAULT_LEXER)) {
    lexerFind=true;
    statistical=true;
    dictTag=false;
    postProcess=false;
    nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
  }
 else {
    lexerFind=false;
    statistical=true;
    dictTag=false;
    postProcess=false;
    nameFinder=new StatisticalNameFinder(properties,params,nameFactory);
  }
}