Program: 138937
Project: 138937
Buggy source:
@Override public void run(){
  SelectedResources selectedResources=new SelectedResources();
  IFile[] selectedFiles=selectedResources.getSelectedResourcesArrayForDelForever();
  try {
    String fileString=ResourceManager.getLibrariesFolder().getLocation().toOSString() + "String_Node_Str";
    File f=new Path(fileString).toFile();
    for (    IFile file : selectedFiles) {
      Property property=PropertyHelper.getProperty(file);
      property.getItem().getState().setDeleted(false);
      Resource propertyResource=property.eResource();
      if (!EMFSharedResources.getInstance().saveResource(propertyResource))       return;
      if (f.exists()) {
        LogicalDeleteFileHandle.replaceInFile(LogicalDeleteFileHandle.fileType + file.getFullPath().toOSString(),"String_Node_Str");
        LogicalDeleteFileHandle.removeAllParent(file);
      }
    }
    if (f.exists()) {
      DQRespositoryView findView=CorePlugin.getDefault().getRepositoryView();
      TreeSelection treeSelection=(TreeSelection)findView.getCommonViewer().getSelection();
      DQRecycleBinNode rbn=(DQRecycleBinNode)treeSelection.getFirstElement();
      if (rbn.getDeletedChildren() != null) {
        IFolder selFolder=(IFolder)rbn.getObject();
        for (        IResource member : selFolder.members()) {
          if (member instanceof IFolder) {
            LogicalDeleteFileHandle.replaceInFile(LogicalDeleteFileHandle.folderType + ((IFolder)member).getFullPath().toOSString(),"String_Node_Str");
          }
        }
        LogicalDeleteFileHandle.replaceInFile(LogicalDeleteFileHandle.folderType + selFolder.getFullPath().toOSString(),"String_Node_Str");
      }
    }
  }
 catch (  Exception exc) {
    log.error(exc,exc);
  }
  ProxyRepositoryManager.getInstance().save();
  CorePlugin.getDefault().refreshDQView();
  CorePlugin.getDefault().refreshWorkSpace();
}

Fixed version (ground truth):
@Override public void run(){
  SelectedResources selectedResources=new SelectedResources();
  IFile[] selectedFiles=selectedResources.getSelectedResourcesArrayForDelForever();
  try {
    String fileString=ResourceManager.getLibrariesFolder().getLocation().toOSString() + "String_Node_Str";
    File f=new Path(fileString).toFile();
    for (    IFile file : selectedFiles) {
      Property property=PropertyHelper.getProperty(file);
      property.getItem().getState().setDeleted(false);
      Resource propertyResource=property.eResource();
      if (!EMFSharedResources.getInstance().saveResource(propertyResource))       return;
      if (f.exists()) {
        LogicalDeleteFileHandle.replaceInFile(LogicalDeleteFileHandle.fileType + file.getFullPath().toOSString(),PluginConstant.EMPTY_STRING);
        LogicalDeleteFileHandle.removeAllParent(file);
      }
    }
    if (f.exists()) {
      DQRespositoryView findView=CorePlugin.getDefault().getRepositoryView();
      TreeSelection treeSelection=(TreeSelection)findView.getCommonViewer().getSelection();
      DQRecycleBinNode rbn=(DQRecycleBinNode)treeSelection.getFirstElement();
      if (rbn.getObject() instanceof IFolder) {
        IFolder selFolder=(IFolder)rbn.getObject();
        restoreSubFolders(selFolder.members());
        if (LogicalDeleteFileHandle.isStartWithDelFolder(selFolder.getFullPath().toOSString())) {
          LogicalDeleteFileHandle.replaceInFile(LogicalDeleteFileHandle.folderType + selFolder.getFullPath().toOSString(),"String_Node_Str");
        }
      }
    }
  }
 catch (  Exception exc) {
    log.error(exc,exc);
  }
  ProxyRepositoryManager.getInstance().save();
  CorePlugin.getDefault().refreshDQView();
  CorePlugin.getDefault().refreshWorkSpace();
}