Program: 137817
Project: 137817
Buggy source:
@Override public boolean performFinish(){
  String targetFile=page.getTargetFile();
  Object[] elements=page.getSelectedPatternsTree().getCheckedElements();
  List<Pattern> seletedPatterns=new ArrayList<Pattern>();
  for (  Object element : elements) {
    if (element instanceof PatternRepNode) {
      PatternRepNode patternNode=(PatternRepNode)element;
      Pattern pattern=patternNode.getPattern();
      seletedPatterns.add(pattern);
    }
  }
  if ("String_Node_Str".equals(targetFile)) {
    MessageDialog.openError(getShell(),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
    return false;
  }
 else {
    File resource=new File(targetFile);
    if (isForExchange) {
      ExportFactory.export(isForExchange,resource,folder,seletedPatterns.toArray(new Pattern[seletedPatterns.size()]));
      for (      Pattern pattern : seletedPatterns) {
        File patternFile=new File(resource,ExportFactory.toLocalFileName(pattern.getName() + "String_Node_Str"));
        if (patternFile.isFile() && patternFile.exists()) {
          try {
            FilesUtils.zip(patternFile,patternFile.getPath() + "String_Node_Str");
            patternFile.delete();
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
    }
 else {
      boolean isContinue=true;
      if (resource.exists()) {
        isContinue=MessageDialogWithToggle.openConfirm(null,DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
      }
      if (!isContinue) {
        return false;
      }
      ExportFactory.export(isForExchange,resource,folder,seletedPatterns.toArray(new Pattern[seletedPatterns.size()]));
    }
    CorePlugin.getDefault().refreshDQView(RepositoryNodeHelper.getLibrariesFolderNode(EResourceConstant.PATTERNS));
    CorePlugin.getDefault().refreshWorkSpace();
    return true;
  }
}

Fixed version (ground truth):
@Override public boolean performFinish(){
  String targetFile=page.getTargetFile();
  Object[] elements=page.getSelectedPatternsTree().getCheckedElements();
  List<Pattern> seletedPatterns=new ArrayList<Pattern>();
  for (  Object element : elements) {
    if (element instanceof PatternRepNode) {
      PatternRepNode patternNode=(PatternRepNode)element;
      Pattern pattern=patternNode.getPattern();
      seletedPatterns.add(pattern);
    }
  }
  if ("String_Node_Str".equals(targetFile)) {
    MessageDialog.openError(getShell(),DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
    return false;
  }
 else {
    File resource=new File(targetFile);
    if (isForExchange) {
      ExportFactory.export(resource,folder,seletedPatterns.toArray(new Pattern[seletedPatterns.size()]));
      for (      Pattern pattern : seletedPatterns) {
        File patternFile=new File(resource,ExportFactory.toLocalFileName(pattern.getName() + "String_Node_Str"));
        if (patternFile.isFile() && patternFile.exists()) {
          try {
            FilesUtils.zip(patternFile,patternFile.getPath() + "String_Node_Str");
            patternFile.delete();
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
    }
 else {
      boolean isContinue=true;
      if (resource.exists()) {
        isContinue=MessageDialogWithToggle.openConfirm(null,DefaultMessagesImpl.getString("String_Node_Str"),DefaultMessagesImpl.getString("String_Node_Str"));
      }
      if (!isContinue) {
        return false;
      }
      ExportFactory.export(resource,folder,seletedPatterns.toArray(new Pattern[seletedPatterns.size()]));
    }
    CorePlugin.getDefault().refreshDQView(RepositoryNodeHelper.getLibrariesFolderNode(EResourceConstant.PATTERNS));
    CorePlugin.getDefault().refreshWorkSpace();
    return true;
  }
}