Program: 19916
Project: 19916
Buggy source:
/** 
 * Constructs a FastDictionary using the given context. The context will give you the SphinxProperties that tells you where the word and filler dictionaries are by the following properties: <pre> edu.cmu.sphinx.knowledge.dictionary.Dictionary.dictionaryPath edu.cmu.sphinx.knowledge.dictionary.Dictionary.fillerDictionaryPath  </pre>
 * @param context the context of this FastDictionary
 * @throws java.lang.IllegalArgumentException if the given contextdoes not contain a path to the dictionary
 * @throws java.io.IOException if there is an error reading the dictionary
 */
public FastDictionary(String context) throws IllegalArgumentException, IOException {
  SphinxProperties properties=SphinxProperties.getSphinxProperties(context);
  boolean useAMLocation=properties.getBoolean(Dictionary.PROP_USE_AM_LOCATION,Dictionary.PROP_USE_AM_LOCATION_DEFAULT);
  String location=null;
  if (useAMLocation) {
    location=properties.getString(AcousticModel.PROP_LOCATION,null);
  }
  String wordDictionaryFile=properties.getString(Dictionary.PROP_DICTIONARY,Dictionary.PROP_DICTIONARY_DEFAULT);
  String fillerDictionaryFile=properties.getString(Dictionary.PROP_FILLER_DICTIONARY,Dictionary.PROP_FILLER_DICTIONARY_DEFAULT);
  addSilEndingPronunciation=properties.getBoolean(Dictionary.PROP_ADD_SIL_ENDING_PRONUNCIATION,Dictionary.PROP_ADD_SIL_ENDING_PRONUNCIATION_DEFAULT);
  wordReplacement=properties.getString(Dictionary.PROP_WORD_REPLACEMENT,Dictionary.PROP_WORD_REPLACEMENT_DEFAULT);
  if (wordReplacement != null) {
    wordReplacement=wordReplacement.toLowerCase();
  }
  allowMissingWords=properties.getBoolean(Dictionary.PROP_ALLOW_MISSING_WORDS,Dictionary.PROP_ALLOW_MISSING_WORDS_DEFAULT);
  createMissingWords=properties.getBoolean(PROP_CREATE_MISSING_WORDS,PROP_CREATE_MISSING_WORDS_DEFAULT);
  if (wordDictionaryFile == null) {
    throw new IllegalArgumentException("String_Node_Str" + context + "String_Node_Str"+ "String_Node_Str"+ PROP_DICTIONARY);
  }
  if (fillerDictionaryFile == null) {
    throw new IllegalArgumentException("String_Node_Str" + context + "String_Node_Str"+ "String_Node_Str"+ PROP_FILLER_DICTIONARY);
  }
  Timer loadTimer=Timer.getTimer(context,"String_Node_Str");
  fillerWords=new ArrayList();
  loadTimer.start();
  logger.info("String_Node_Str");
  logger.info(location + "String_Node_Str" + wordDictionaryFile);
  loadDictionary(StreamFactory.getInputStream(location,wordDictionaryFile),false);
  logger.info("String_Node_Str");
  logger.info(location + "String_Node_Str" + fillerDictionaryFile);
  loadDictionary(StreamFactory.getInputStream(location,fillerDictionaryFile),true);
  loadTimer.stop();
}

Fixed version (ground truth):
/** 
 * Constructs a FastDictionary using the given context. The context will give you the SphinxProperties that tells you where the word and filler dictionaries are by the following properties: <pre> edu.cmu.sphinx.knowledge.dictionary.Dictionary.dictionaryPath edu.cmu.sphinx.knowledge.dictionary.Dictionary.fillerDictionaryPath  </pre>
 * @param context the context of this FastDictionary
 * @throws java.lang.IllegalArgumentException if the given contextdoes not contain a path to the dictionary
 * @throws java.io.IOException if there is an error reading the dictionary
 */
public FastDictionary(String context) throws IllegalArgumentException, IOException {
  SphinxProperties properties=SphinxProperties.getSphinxProperties(context);
  boolean useAMLocation=properties.getBoolean(Dictionary.PROP_USE_AM_LOCATION,Dictionary.PROP_USE_AM_LOCATION_DEFAULT);
  String location=null;
  if (useAMLocation) {
    location=properties.getString(AcousticModel.PROP_LOCATION,null);
  }
  String wordDictionaryFile=properties.getString(Dictionary.PROP_DICTIONARY,Dictionary.PROP_DICTIONARY_DEFAULT);
  String fillerDictionaryFile=properties.getString(Dictionary.PROP_FILLER_DICTIONARY,Dictionary.PROP_FILLER_DICTIONARY_DEFAULT);
  addSilEndingPronunciation=properties.getBoolean(Dictionary.PROP_ADD_SIL_ENDING_PRONUNCIATION,Dictionary.PROP_ADD_SIL_ENDING_PRONUNCIATION_DEFAULT);
  wordReplacement=properties.getString(Dictionary.PROP_WORD_REPLACEMENT,Dictionary.PROP_WORD_REPLACEMENT_DEFAULT);
  if (wordReplacement != null) {
    wordReplacement=wordReplacement.toLowerCase();
  }
  allowMissingWords=properties.getBoolean(Dictionary.PROP_ALLOW_MISSING_WORDS,Dictionary.PROP_ALLOW_MISSING_WORDS_DEFAULT);
  createMissingWords=properties.getBoolean(PROP_CREATE_MISSING_WORDS,PROP_CREATE_MISSING_WORDS_DEFAULT);
  if (wordDictionaryFile == null) {
    throw new IllegalArgumentException("String_Node_Str" + context + "String_Node_Str"+ "String_Node_Str"+ PROP_DICTIONARY);
  }
  if (fillerDictionaryFile == null) {
    throw new IllegalArgumentException("String_Node_Str" + context + "String_Node_Str"+ "String_Node_Str"+ PROP_FILLER_DICTIONARY);
  }
  Timer loadTimer=Timer.getTimer(context,"String_Node_Str");
  fillerWords=new HashSet();
  loadTimer.start();
  logger.info("String_Node_Str");
  logger.info(location + "String_Node_Str" + wordDictionaryFile);
  loadDictionary(StreamFactory.getInputStream(location,wordDictionaryFile),false);
  logger.info("String_Node_Str");
  logger.info(location + "String_Node_Str" + fillerDictionaryFile);
  loadDictionary(StreamFactory.getInputStream(location,fillerDictionaryFile),true);
  loadTimer.stop();
}