Program: 138380
Project: 138380
Buggy source:
@Override protected void doRun(){
  ISelection selection=getSelection();
  Object obj=((IStructuredSelection)selection).getFirstElement();
  final RepositoryNode node=(RepositoryNode)obj;
  final String title=DefaultMessagesImpl.getString("String_Node_Str");
  String message=null;
  if (node.getChildren().size() == 0) {
    return;
  }
 else   if (node.getChildren().size() >= 1) {
    message=DefaultMessagesImpl.getString("String_Node_Str") + "String_Node_Str" + DefaultMessagesImpl.getString("String_Node_Str");
  }
  final Shell shell=super.getShell();
  if (!(MessageDialog.openQuestion(shell,title,message))) {
    return;
  }
  IProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  for (  IRepositoryNode child : node.getChildren()) {
    try {
      if (child.getType() == ENodeType.REPOSITORY_ELEMENT) {
        ModelElement modelEle=RepositoryNodeHelper.getModelElementFromRepositoryNode(child);
        if (modelEle != null && modelEle instanceof TdReport) {
          IFile file=ResourceManager.getReportsFolder().getFile(WorkbenchUtils.getFilePath(node));
          if (file.exists()) {
            RepResourceFileHelper.getInstance().remove(file);
          }
        }
        EObjectHelper.removeDependencys(modelEle);
      }
      deleteElements(factory,(RepositoryNode)child);
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
  try {
    factory.saveProject(ProjectManager.getInstance().getCurrentProject());
  }
 catch (  PersistenceException e) {
    ExceptionHandler.process(e);
  }
}

Fixed version (ground truth):
@Override protected void doRun(){
  ISelection selection=getSelection();
  Object obj=((IStructuredSelection)selection).getFirstElement();
  final RepositoryNode node=(RepositoryNode)obj;
  final String title=DefaultMessagesImpl.getString("String_Node_Str");
  String message=null;
  if (node.getChildren().size() == 0) {
    return;
  }
 else   if (node.getChildren().size() >= 1) {
    message=DefaultMessagesImpl.getString("String_Node_Str") + "String_Node_Str" + DefaultMessagesImpl.getString("String_Node_Str");
  }
  final Shell shell=super.getShell();
  if (!(MessageDialog.openQuestion(shell,title,message))) {
    return;
  }
  IProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  for (  IRepositoryNode child : node.getChildren()) {
    try {
      if (child.getType() == ENodeType.REPOSITORY_ELEMENT) {
        ModelElement modelEle=RepositoryNodeHelper.getModelElementFromRepositoryNode(child);
        if (modelEle != null && modelEle instanceof TdReport) {
          IFile file=ResourceManager.getReportsFolder().getFile(WorkbenchUtils.getFilePath(node));
          if (file != null) {
            RepResourceFileHelper.getInstance().remove(file);
          }
        }
        EObjectHelper.removeDependencys(modelEle);
      }
      deleteElements(factory,(RepositoryNode)child);
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
  try {
    factory.saveProject(ProjectManager.getInstance().getCurrentProject());
  }
 catch (  PersistenceException e) {
    ExceptionHandler.process(e);
  }
}