Program: 129667
Project: 129667
Buggy source:
protected void doRun(){
  ISelection selection=getSelection();
  Object obj=((IStructuredSelection)selection).getFirstElement();
  final RepositoryNode node=(RepositoryNode)obj;
  final String title=Messages.getString("String_Node_Str");
  String message=null;
  List<IRepositoryNode> originalChildren=node.getChildren();
  List<IRepositoryNode> children=new ArrayList<IRepositoryNode>(originalChildren);
  if (children.size() == 0) {
    return;
  }
 else   if (children.size() > 1) {
    message=Messages.getString("String_Node_Str") + "String_Node_Str" + Messages.getString("String_Node_Str");
  }
 else {
    message=Messages.getString("String_Node_Str") + "String_Node_Str" + Messages.getString("String_Node_Str");
  }
  final Shell shell=getShell();
  if (!(MessageDialog.openQuestion(shell,title,message))) {
    return;
  }
  IProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  for (  IRepositoryNode child : children) {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
      ITDQRepositoryService tdqRepService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
      if (!tdqRepService.removeAliasInSQLExplorer(child)) {
        MessageDialog.openWarning(shell,title,Messages.getString("String_Node_Str"));
        try {
          factory.saveProject(ProjectManager.getInstance().getCurrentProject());
        }
 catch (        PersistenceException e) {
          ExceptionHandler.process(e);
        }
        return;
      }
    }
    try {
      deleteElements(factory,(RepositoryNode)child);
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
  try {
    factory.saveProject(ProjectManager.getInstance().getCurrentProject());
  }
 catch (  PersistenceException e) {
    ExceptionHandler.process(e);
  }
  if (!PluginChecker.isOnlyTopLoaded()) {
    RepositoryManager.refresh(ERepositoryObjectType.JOB_SCRIPT);
    IRepositoryView view=getViewPart();
    if (view != null) {
      view.refresh();
    }
  }
}

Fixed version (ground truth):
@Override protected void doRun(){
  ISelection selection=getSelection();
  Object obj=((IStructuredSelection)selection).getFirstElement();
  final RepositoryNode node=(RepositoryNode)obj;
  final String title=Messages.getString("String_Node_Str");
  String message=null;
  List<IRepositoryNode> originalChildren=node.getChildren();
  List<IRepositoryNode> children=new ArrayList<IRepositoryNode>(originalChildren);
  if (children.size() == 0) {
    return;
  }
 else   if (children.size() > 1) {
    message=Messages.getString("String_Node_Str") + "String_Node_Str" + Messages.getString("String_Node_Str");
  }
 else {
    message=Messages.getString("String_Node_Str") + "String_Node_Str" + Messages.getString("String_Node_Str");
  }
  final Shell shell=getShell();
  if (!(MessageDialog.openQuestion(shell,title,message))) {
    return;
  }
  IProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  for (  IRepositoryNode child : children) {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
      ITDQRepositoryService tdqRepService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
      if (!tdqRepService.removeAliasInSQLExplorer(child)) {
        MessageDialog.openWarning(shell,title,Messages.getString("String_Node_Str"));
        try {
          factory.saveProject(ProjectManager.getInstance().getCurrentProject());
        }
 catch (        PersistenceException e) {
          ExceptionHandler.process(e);
        }
        return;
      }
    }
    try {
      deleteElements(factory,(RepositoryNode)child);
    }
 catch (    Exception e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
  try {
    factory.saveProject(ProjectManager.getInstance().getCurrentProject());
  }
 catch (  PersistenceException e) {
    ExceptionHandler.process(e);
  }
  if (!PluginChecker.isOnlyTopLoaded()) {
    RepositoryManager.refresh(ERepositoryObjectType.JOB_SCRIPT);
    IRepositoryView view=getViewPart();
    if (view != null) {
      view.refresh();
    }
  }
}