Program: 167160
Project: 167160
Buggy source:
/** 
 * Filters lexicon. Call RunFilter() instead of this, which runs on a timed session to prevent overlapping filters.
 */
private void filterLexicon(){
  if (curPopulating) {
    return;
  }
  String filterGend=cmbGenderSrc.getValue().equals(defGenderValue) ? "String_Node_Str" : ((GenderNode)cmbGenderSrc.getValue()).getValue();
  String filterType=cmbTypeSrc.getValue().equals(defTypeValue) ? "String_Node_Str" : ((TypeNode)cmbTypeSrc.getValue()).getValue();
  if (txtConSrc.getText().equals("String_Node_Str") && txtDefSrc.getText().equals("String_Node_Str") && txtLocalSrc.getText().equals("String_Node_Str")&& txtProcSrc.getText().equals("String_Node_Str")&& filterGend.equals("String_Node_Str")&& filterType.equals("String_Node_Str")) {
    populateLexicon();
    lstLexicon.setSelectedIndex(0);
    lstLexicon.ensureIndexIsVisible(0);
    return;
  }
  ConWord filter=new ConWord();
  filter.setValue(txtConSrc.getText().trim());
  filter.setDefinition(txtDefSrc.getText().trim());
  filter.setLocalWord(txtLocalSrc.getText().trim());
  filter.setWordType(filterType);
  filter.setGender(filterGend);
  filter.setPronunciation(txtProcSrc.getText().trim());
  ConWord curWord=(ConWord)lstLexicon.getSelectedValue();
  if (curWord != null) {
    saveValuesTo(curWord);
  }
  try {
    populateLexicon(core.getWordCollection().filteredList(filter));
  }
 catch (  Exception e) {
    InfoBox.error("String_Node_Str","String_Node_Str" + e.getMessage(),this);
  }
  lstLexicon.setSelectedIndex(0);
  lstLexicon.ensureIndexIsVisible(0);
}

Fixed version (ground truth):
/** 
 * Filters lexicon. Call RunFilter() instead of this, which runs on a timed session to prevent overlapping filters.
 */
private void filterLexicon(){
  if (curPopulating) {
    return;
  }
  String filterGend=cmbGenderSrc.getValue().equals(defGenderValue) ? "String_Node_Str" : ((GenderNode)cmbGenderSrc.getValue()).getValue();
  String filterType=cmbTypeSrc.getValue().equals(defTypeValue) ? "String_Node_Str" : ((TypeNode)cmbTypeSrc.getValue()).getValue();
  if (txtConSrc.getText().equals("String_Node_Str") && txtDefSrc.getText().equals("String_Node_Str") && txtLocalSrc.getText().equals("String_Node_Str")&& txtProcSrc.getText().equals("String_Node_Str")&& filterGend.equals("String_Node_Str")&& filterType.equals("String_Node_Str")) {
    populateLexicon();
    lstLexicon.setSelectedIndex(0);
    lstLexicon.ensureIndexIsVisible(0);
    if (lstLexicon.getModel().getSize() < core.getWordCollection().getWordCount()) {
      populateLexicon();
      lstLexicon.setSelectedIndex(0);
      populateProperties();
    }
 else {
      return;
    }
  }
  ConWord filter=new ConWord();
  filter.setValue(txtConSrc.getText().trim());
  filter.setDefinition(txtDefSrc.getText().trim());
  filter.setLocalWord(txtLocalSrc.getText().trim());
  filter.setWordType(filterType);
  filter.setGender(filterGend);
  filter.setPronunciation(txtProcSrc.getText().trim());
  ConWord curWord=(ConWord)lstLexicon.getSelectedValue();
  if (curWord != null) {
    saveValuesTo(curWord);
  }
  try {
    populateLexicon(core.getWordCollection().filteredList(filter));
  }
 catch (  Exception e) {
    InfoBox.error("String_Node_Str","String_Node_Str" + e.getMessage(),this);
  }
  lstLexicon.setSelectedIndex(0);
  lstLexicon.ensureIndexIsVisible(0);
}