Program: 140730
Project: 140730
Buggy source:
@Override public void run(){
  DQRespositoryView findView=(DQRespositoryView)CorePlugin.getDefault().findView(DQRespositoryView.ID);
  TreeSelection treeSelection=(TreeSelection)findView.getCommonViewer().getSelection();
  TreePath[] paths=treeSelection.getPaths();
  TdReport parentReport;
  List<Analysis> analysisList;
  Analysis analysisObj=null;
  Map<TdReport,List<Analysis>> removeMap=new HashMap<TdReport,List<Analysis>>();
  for (int i=0; i < paths.length; i++) {
    Object lastSegment=paths[i].getLastSegment();
    if (!(lastSegment instanceof Analysis)) {
      return;
    }
    analysisObj=(Analysis)lastSegment;
    IFile fileSegment=(IFile)paths[i].getSegment(paths[i].getSegmentCount() - 2);
    parentReport=RepResourceFileHelper.getInstance().findReport(fileSegment);
    analysisList=removeMap.get(parentReport);
    if (analysisList == null) {
      analysisList=new ArrayList<Analysis>();
      analysisList.add(analysisObj);
      removeMap.put(parentReport,analysisList);
    }
 else {
      analysisList.add(analysisObj);
    }
  }
  if (analysisObj == null) {
    return;
  }
  String message=paths.length > 1 ? "String_Node_Str" + paths.length + "String_Node_Str" : "String_Node_Str" + analysisObj.getName() + "String_Node_Str";
  boolean openConfirm=MessageDialog.openConfirm(null,"String_Node_Str",message);
  if (openConfirm) {
    Iterator<TdReport> iterator=removeMap.keySet().iterator();
    while (iterator.hasNext()) {
      TdReport report=iterator.next();
      ReportHelper.removeAnalyses(report,removeMap.get(report));
      RepResourceFileHelper.getInstance().save(report);
      List<Resource> modifiedResources=DependenciesHandler.getInstance().clearDependencies(report);
      EMFUtil util=EMFUtil.getInstance();
      util.getResourceSet().getResources().addAll(modifiedResources);
      if (!util.save()) {
        log.warn("String_Node_Str" + util.getLastErrorMessage());
      }
    }
    IFolder reportsFolder=ResourcesPlugin.getWorkspace().getRoot().getProject(DQStructureManager.DATA_PROFILING).getFolder(DQStructureManager.REPORTS);
    try {
      reportsFolder.refreshLocal(IResource.DEPTH_INFINITE,null);
    }
 catch (    CoreException e) {
      e.printStackTrace();
    }
    findView.getCommonViewer().refresh();
  }
}

Fixed version (ground truth):
@Override public void run(){
  DQRespositoryView findView=(DQRespositoryView)CorePlugin.getDefault().findView(DQRespositoryView.ID);
  TreeSelection treeSelection=(TreeSelection)findView.getCommonViewer().getSelection();
  TreePath[] paths=treeSelection.getPaths();
  TdReport parentReport;
  List<Analysis> analysisList;
  Analysis analysisObj=null;
  Map<TdReport,List<Analysis>> removeMap=new HashMap<TdReport,List<Analysis>>();
  for (int i=0; i < paths.length; i++) {
    Object lastSegment=paths[i].getLastSegment();
    if (!(lastSegment instanceof Analysis)) {
      return;
    }
    analysisObj=(Analysis)lastSegment;
    IFile fileSegment=(IFile)paths[i].getSegment(paths[i].getSegmentCount() - 2);
    parentReport=RepResourceFileHelper.getInstance().findReport(fileSegment);
    analysisList=removeMap.get(parentReport);
    if (analysisList == null) {
      analysisList=new ArrayList<Analysis>();
      analysisList.add(analysisObj);
      removeMap.put(parentReport,analysisList);
    }
 else {
      analysisList.add(analysisObj);
    }
  }
  if (analysisObj == null) {
    return;
  }
  String message=paths.length > 1 ? "String_Node_Str" + paths.length + "String_Node_Str" : "String_Node_Str" + analysisObj.getName() + "String_Node_Str";
  boolean openConfirm=MessageDialog.openConfirm(null,"String_Node_Str",message);
  if (openConfirm) {
    Iterator<TdReport> iterator=removeMap.keySet().iterator();
    while (iterator.hasNext()) {
      TdReport report=iterator.next();
      ReportHelper.removeAnalyses(report,removeMap.get(report));
      RepResourceFileHelper.getInstance().save(report);
      List<Resource> modifiedResources=DependenciesHandler.getInstance().clearDependencies(report);
      EMFUtil util=EMFUtil.getInstance();
      for (int i=0; i < modifiedResources.size(); i++) {
        util.saveSingleResource(modifiedResources.get(i));
      }
    }
    IFolder reportsFolder=ResourcesPlugin.getWorkspace().getRoot().getProject(DQStructureManager.DATA_PROFILING).getFolder(DQStructureManager.REPORTS);
    try {
      reportsFolder.refreshLocal(IResource.DEPTH_INFINITE,null);
    }
 catch (    CoreException e) {
      e.printStackTrace();
    }
    findView.getCommonViewer().refresh();
  }
}