Program: 137704
Project: 137704
Buggy source:
public void run(){
  boolean save=DQRepositoryNode.isOnFilterring();
  String value=DQRepositoryNode.getFilterStr();
  boolean untilSchema=false;
  boolean untilTable=false;
  try {
    if (DIALOG_TYPE_TABLE == getDialogType()) {
      untilSchema=DQRepositoryNode.isUntilSchema();
    }
 else     if (isfViewer) {
      untilTable=DQRepositoryNode.isUntilTable();
    }
    DQRepositoryNode.setFilterStr(filter);
    if (filter.equals("String_Node_Str")) {
      DQRepositoryNode.setFiltering(false);
      if (isfViewer) {
        fViewer.refresh();
        restoreCheckStatus();
      }
 else {
        sTableViewer.refresh();
      }
      unfoldToCheckedElements();
    }
 else {
      DQRepositoryNode.setFiltering(true);
      if (isfViewer) {
        if (DIALOG_TYPE_TABLE == getDialogType()) {
          DQRepositoryNode.setUntilSchema(true);
        }
 else {
          DQRepositoryNode.setUntilTable(true);
        }
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(false);
        fViewer.refresh();
        fViewer.expandAll();
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(true);
        restoreCheckStatus();
      }
 else {
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(false);
        sTableViewer.refresh();
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(true);
      }
    }
  }
  finally {
    DQRepositoryNode.setFiltering(save);
    DQRepositoryNode.setFilterStr(value);
    if (isfViewer) {
      DQRepositoryNode.setUntilTable(untilTable);
    }
    if (DIALOG_TYPE_TABLE == getDialogType()) {
      DQRepositoryNode.setUntilSchema(untilSchema);
    }
  }
  updateOKStatus();
}

Fixed version (ground truth):
public void run(){
  boolean save=DQRepositoryNode.isOnFilterring();
  String value=DQRepositoryNode.getFilterStr();
  boolean untilSchema=false;
  boolean untilTable=false;
  try {
    if (DIALOG_TYPE_TABLE == getDialogType()) {
      untilSchema=DQRepositoryNode.isUntilSchema();
    }
 else     if (isfViewer) {
      untilTable=DQRepositoryNode.isUntilTable();
    }
    DQRepositoryNode.setFilterStr(filter);
    if (filter.equals("String_Node_Str")) {
      DQRepositoryNode.setFiltering(false);
      if (isfViewer) {
        fViewer.refresh();
        restoreCheckStatus();
      }
 else {
        sTableViewer.refresh();
      }
      unfoldToCheckedElements();
    }
 else {
      DQRepositoryNode.setFiltering(true);
      if (isfViewer) {
        if (DIALOG_TYPE_TABLE == getDialogType()) {
          DQRepositoryNode.setUntilSchema(true);
        }
 else {
          DQRepositoryNode.setUntilTable(true);
        }
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(false);
        fViewer.refresh();
        fViewer.expandAll();
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(true);
        restoreCheckStatus();
      }
 else {
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(false);
        sTableViewer.refresh();
        DQRepositoryNode.setIsReturnAllNodesWhenFiltering(true);
        restoreTableCheckStatus();
      }
    }
  }
  finally {
    DQRepositoryNode.setFiltering(save);
    DQRepositoryNode.setFilterStr(value);
    if (isfViewer) {
      DQRepositoryNode.setUntilTable(untilTable);
    }
    if (DIALOG_TYPE_TABLE == getDialogType()) {
      DQRepositoryNode.setUntilSchema(untilSchema);
    }
  }
  updateOKStatus();
}