Program: 148249
Project: 148249
Buggy source:
private void makeActions(){
  loginAction=new ServerLoginAction(this);
  logoutAction=new Action(){
    public void run(){
      TreeParent serverRoot=(TreeParent)((IStructuredSelection)ServerView.this.viewer.getSelection()).getFirstElement();
      final String universe=serverRoot.getUniverse();
      final String username=serverRoot.getUsername();
      final String password=serverRoot.getPassword();
      final String endpointAddress=serverRoot.getEndpointAddress();
      TreeParent root=serverRoot.getParent();
      LocalTreeObjectRepository.getInstance().switchOffListening();
      LocalTreeObjectRepository.getInstance().setLazySaveStrategy(false,(TreeParent)serverRoot);
      IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      int length=page.getEditors().length;
      String version="String_Node_Str";
      String tabEndpointAddress="String_Node_Str";
      String unserName=null;
      int j=0;
      for (int i=0; i < length; i++) {
        IEditorPart part=page.getEditors()[i - j];
        if (part instanceof XObjectBrowser) {
          version=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getUniverse();
          tabEndpointAddress=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getEndpointAddress();
          unserName=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getUsername();
        }
 else         if (part instanceof XObjectEditor) {
          version=((XObjectEditor)part).getInitialXObject().getServerRoot().getUniverse();
          tabEndpointAddress=((XObjectEditor)part).getInitialXObject().getServerRoot().getEndpointAddress();
          unserName=((XObjectEditor)part).getInitialXObject().getServerRoot().getUsername();
        }
        if (serverRoot.getUniverse().equals(version) && endpointAddress.equals(tabEndpointAddress) && serverRoot.getUsername().equals(unserName)) {
          page.closeEditor(part,false);
          j++;
        }
      }
      serverRoot.getParent().removeChild(serverRoot);
      ServerView.this.viewer.refresh();
      ServerView.this.viewer.getControl().getDisplay().syncExec(new Runnable(){
        public void run(){
          try {
            Util.getPort(new URL(endpointAddress),universe,username,password).logout(new WSLogout());
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
);
      deleteReserved(endpointAddress,username,universe);
    }
  }
;
  logoutAction.setText("String_Node_Str");
  logoutAction.setToolTipText("String_Node_Str" + IConstants.TALEND + "String_Node_Str");
  logoutAction.setImageDescriptor(ImageCache.getImage(EImage.LOGOUT.getPath()));
  editXObjectAction=new EditXObjectAction(this);
  newXObjectAction=new NewXObjectAction(this);
  renameXObjectAction=new RenameXObjectAction(this);
  browseRevisionAction=new BrowseRevisionAction(this);
  deleteXObjectAction=new DeleteXObjectAction(this);
  serverRefreshAction=new ServerRefreshAction(this);
  serverRefreshCacheAction=new ServerRefreshCacheAction(this);
  refreshAllServerAction=new RefreshAllServerAction(this);
  browseViewAction=new BrowseViewAction(this);
  copyAction=new CopyXObjectAction(this);
  pasteAction=new PasteXObjectAction(this);
  duplicateAction=new DuplicateXObjectAction(this);
  exportAction=new ExportItemsAction(this);
  importAction=new ImportItemsAction(this);
  newCategoryAction=new NewCategoryAction(this);
}

Fixed version (ground truth):
private void makeActions(){
  loginAction=new ServerLoginAction(this);
  logoutAction=new Action(){
    public void run(){
      TreeParent serverRoot=(TreeParent)((IStructuredSelection)ServerView.this.viewer.getSelection()).getFirstElement();
      final String universe=serverRoot.getUniverse();
      final String username=serverRoot.getUsername();
      final String password=serverRoot.getPassword();
      final String endpointAddress=serverRoot.getEndpointAddress();
      TreeParent root=serverRoot.getParent();
      LocalTreeObjectRepository.getInstance().switchOffListening();
      LocalTreeObjectRepository.getInstance().setLazySaveStrategy(false,(TreeParent)serverRoot);
      IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
      int length=page.getEditors().length;
      String version="String_Node_Str";
      String tabEndpointAddress="String_Node_Str";
      String unserName=null;
      int j=0;
      for (int i=0; i < length; i++) {
        IEditorPart part=page.getEditors()[i - j];
        if (part instanceof XObjectBrowser) {
          version=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getUniverse();
          tabEndpointAddress=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getEndpointAddress();
          unserName=((TreeObject)((XObjectBrowserInput)part.getEditorInput()).getModel()).getUsername();
        }
 else         if (part instanceof XObjectEditor) {
          version=((XObjectEditor)part).getInitialXObject().getServerRoot().getUniverse();
          tabEndpointAddress=((XObjectEditor)part).getInitialXObject().getServerRoot().getEndpointAddress();
          unserName=((XObjectEditor)part).getInitialXObject().getServerRoot().getUsername();
        }
        if (serverRoot.getUniverse().equals(version) && endpointAddress.equals(tabEndpointAddress) && serverRoot.getUsername().equals(unserName)) {
          page.closeEditor(part,false);
          j++;
        }
      }
      serverRoot.getParent().removeChild(serverRoot);
      ServerView.this.viewer.refresh();
      ServerView.this.viewer.getControl().getDisplay().syncExec(new Runnable(){
        public void run(){
          try {
            Util.getPort(new URL(endpointAddress),universe,username,password).logout(new WSLogout());
          }
 catch (          Exception e) {
            log.error(e.getMessage(),e);
          }
        }
      }
);
    }
  }
;
  logoutAction.setText("String_Node_Str");
  logoutAction.setToolTipText("String_Node_Str" + IConstants.TALEND + "String_Node_Str");
  logoutAction.setImageDescriptor(ImageCache.getImage(EImage.LOGOUT.getPath()));
  editXObjectAction=new EditXObjectAction(this);
  newXObjectAction=new NewXObjectAction(this);
  renameXObjectAction=new RenameXObjectAction(this);
  browseRevisionAction=new BrowseRevisionAction(this);
  deleteXObjectAction=new DeleteXObjectAction(this);
  serverRefreshAction=new ServerRefreshAction(this);
  serverRefreshCacheAction=new ServerRefreshCacheAction(this);
  refreshAllServerAction=new RefreshAllServerAction(this);
  browseViewAction=new BrowseViewAction(this);
  copyAction=new CopyXObjectAction(this);
  pasteAction=new PasteXObjectAction(this);
  duplicateAction=new DuplicateXObjectAction(this);
  exportAction=new ExportItemsAction(this);
  importAction=new ImportItemsAction(this);
  newCategoryAction=new NewCategoryAction(this);
}