Program: 139688
Project: 139688
Buggy source:
@Override public boolean performFinish(){
  String targetFile=page.getTargetFile();
  Object[] elements=page.getSelectedTree().getCheckedElements();
  List<IndicatorDefinition> seletedIndicators=new ArrayList<IndicatorDefinition>();
  for (  Object element : elements) {
    if (element instanceof IFile) {
      IFile file=(IFile)element;
      if (file.getFileExtension().equalsIgnoreCase(FactoriesUtil.UDI)) {
        seletedIndicators.add(UDIResourceFileHelper.getInstance().findUDI(file));
      }
    }
  }
  if ("String_Node_Str".equals(targetFile)) {
    MessageDialog.openError(getShell(),"String_Node_Str","String_Node_Str");
    return false;
  }
 else {
    File resource=new File(targetFile);
    if (isForExchange) {
      ExportFactory.export(resource,folder,seletedIndicators.toArray(new IndicatorDefinition[seletedIndicators.size()]));
      for (Iterator iterator=seletedIndicators.iterator(); iterator.hasNext(); ) {
        IndicatorDefinition id=(IndicatorDefinition)iterator.next();
        File idFile=new File(resource,id.getName() + "String_Node_Str");
        if (idFile.isFile() && idFile.exists()) {
          try {
            FilesUtils.zip(idFile,idFile.getPath() + "String_Node_Str");
            idFile.delete();
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
      return true;
    }
 else {
      boolean isContinue=true;
      if (resource.exists()) {
        isContinue=MessageDialogWithToggle.openConfirm(null,DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
      }
      if (isContinue) {
        ExportFactory.export(resource,folder,seletedIndicators.toArray(new IndicatorDefinition[seletedIndicators.size()]));
        return true;
      }
      return false;
    }
  }
}

Fixed version (ground truth):
@Override public boolean performFinish(){
  String targetFile=page.getTargetFile();
  Object[] elements=page.getSelectedTree().getCheckedElements();
  List<IndicatorDefinition> seletedIndicators=new ArrayList<IndicatorDefinition>();
  for (  Object element : elements) {
    if (element instanceof IFile) {
      IFile file=(IFile)element;
      if (FactoriesUtil.UDI.equalsIgnoreCase(file.getFileExtension())) {
        seletedIndicators.add(UDIResourceFileHelper.getInstance().findUDI(file));
      }
    }
  }
  if ("String_Node_Str".equals(targetFile)) {
    MessageDialog.openError(getShell(),"String_Node_Str","String_Node_Str");
    return false;
  }
 else {
    File resource=new File(targetFile);
    if (isForExchange) {
      ExportFactory.export(resource,folder,seletedIndicators.toArray(new IndicatorDefinition[seletedIndicators.size()]));
      for (Iterator iterator=seletedIndicators.iterator(); iterator.hasNext(); ) {
        IndicatorDefinition id=(IndicatorDefinition)iterator.next();
        File idFile=new File(resource,id.getName() + "String_Node_Str");
        if (idFile.isFile() && idFile.exists()) {
          try {
            FilesUtils.zip(idFile,idFile.getPath() + "String_Node_Str");
            idFile.delete();
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
      return true;
    }
 else {
      boolean isContinue=true;
      if (resource.exists()) {
        isContinue=MessageDialogWithToggle.openConfirm(null,DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
      }
      if (isContinue) {
        ExportFactory.export(resource,folder,seletedIndicators.toArray(new IndicatorDefinition[seletedIndicators.size()]));
        return true;
      }
      return false;
    }
  }
}