Program: 138094
Project: 138094
Buggy source:
/** 
 * DOC bZhou Comment method "addListeners".
 */
private void addListeners(){
  SelectionListener modeSwitchListener=new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      setDirState(isDirState());
      setArchState(!isDirState());
    }
  }
;
  dirBTN.addSelectionListener(modeSwitchListener);
  archBTN.addSelectionListener(modeSwitchListener);
  ModifyListener populateListener=new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      if (isDirState()) {
        basePath=dirTxt.getText();
      }
 else {
        basePath=archTxt.getText();
      }
      textModified(basePath);
    }
  }
;
  dirTxt.addModifyListener(populateListener);
  archTxt.addModifyListener(populateListener);
  browseDirBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      String result=openDirectoryDialog();
      if (result != null) {
        dirTxt.setText(result);
      }
    }
    private String openDirectoryDialog(){
      DirectoryDialog dialog=new DirectoryDialog(Display.getDefault().getActiveShell());
      if (dirTxt.getText() != null) {
        dialog.setFilterPath(dirTxt.getText());
      }
      return dialog.open();
    }
  }
);
  browseArchBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      String result=openFileDialog();
      if (result != null) {
        archTxt.setText(result);
      }
    }
    private String openFileDialog(){
      FileDialog dialog=new FileDialog(Display.getDefault().getActiveShell());
      dialog.setFilterExtensions(FILE_EXPORT_MASK);
      if (archTxt.getText() != null) {
        dialog.setFileName(archTxt.getText());
      }
      return dialog.open();
    }
  }
);
  overwriteBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      textModified(basePath);
    }
  }
);
  repositoryTree.getTree().addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      TreeItem item=(TreeItem)e.item;
      ItemRecord record=(ItemRecord)item.getData();
      if (record.getFile().isFile()) {
        for (        File file : record.getDependencyMap().keySet()) {
          ItemRecord findRecord=ItemRecord.findRecord(file);
          if (findRecord != null) {
            repositoryTree.setChecked(findRecord,item.getChecked());
          }
        }
      }
      populateElement();
      repositoryTree.refresh();
      checkforErrors();
    }
  }
);
}

Fixed version (ground truth):
/** 
 * DOC bZhou Comment method "addListeners".
 */
private void addListeners(){
  SelectionListener modeSwitchListener=new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      setDirState(isDirState());
      setArchState(!isDirState());
    }
  }
;
  dirBTN.addSelectionListener(modeSwitchListener);
  archBTN.addSelectionListener(modeSwitchListener);
  ModifyListener populateListener=new ModifyListener(){
    public void modifyText(    ModifyEvent e){
      if (isDirState()) {
        basePath=dirTxt.getText();
      }
 else {
        basePath=archTxt.getText();
      }
      textModified(basePath);
    }
  }
;
  dirTxt.addModifyListener(populateListener);
  archTxt.addModifyListener(populateListener);
  browseDirBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      String result=openDirectoryDialog();
      if (result != null) {
        dirTxt.setText(result);
      }
    }
    private String openDirectoryDialog(){
      DirectoryDialog dialog=new DirectoryDialog(Display.getDefault().getActiveShell());
      if (dirTxt.getText() != null) {
        dialog.setFilterPath(dirTxt.getText());
      }
      return dialog.open();
    }
  }
);
  browseArchBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      String result=openFileDialog();
      if (result != null) {
        archTxt.setText(result);
      }
    }
    private String openFileDialog(){
      FileDialog dialog=new FileDialog(Display.getDefault().getActiveShell());
      dialog.setFilterExtensions(FILE_EXPORT_MASK);
      if (archTxt.getText() != null) {
        dialog.setFileName(archTxt.getText());
      }
      return dialog.open();
    }
  }
);
  overwriteBTN.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      populateElement();
      checkforErrors();
    }
  }
);
  repositoryTree.getTree().addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      TreeItem item=(TreeItem)e.item;
      ItemRecord record=(ItemRecord)item.getData();
      if (record.getFile().isFile()) {
        for (        File file : record.getDependencyMap().keySet()) {
          ItemRecord findRecord=ItemRecord.findRecord(file);
          if (findRecord != null) {
            repositoryTree.setChecked(findRecord,item.getChecked());
          }
        }
      }
      populateElement();
      repositoryTree.refresh();
      checkforErrors();
    }
  }
);
}