Program: 148652
Project: 148652
Buggy source:
public void run(){
  if (this.server != null) {
    ISelection selection=server.getViewer().getSelection();
    xobject=(TreeParent)((IStructuredSelection)selection).getFirstElement();
  }
  if (xobject.getType() != TreeObject.JOB_REGISTRY)   return;
  try {
    XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
    FileDialog fileDialog=new FileDialog(server.getSite().getShell(),SWT.OPEN);
    fileDialog.setFilterExtensions(new String[]{"String_Node_Str","String_Node_Str"});
    String name=fileDialog.open();
    boolean recover=false;
    boolean exist=false;
    if (name != null) {
      JobInfo info=getJobInfo(name);
      if (info == null)       return;
      WSMDMJobArray array=port.getMDMJob(new WSMDMNULL());
      exist=checkExist(array,info);
      if (exist) {
        recover=MessageDialog.openConfirm(this.server.getSite().getShell(),"String_Node_Str","String_Node_Str" + System.getProperty("String_Node_Str") + "String_Node_Str");
        if (!recover)         return;
 else         MessageDialog.openInformation(this.server.getSite().getShell(),"String_Node_Str","String_Node_Str");
      }
      String fileName=info.getJobname() + "String_Node_Str" + info.getJobversion()+ info.getSuffix();
      String endpointaddress=xobject.getEndpointAddress();
      String uploadURL=new URL(endpointaddress).getProtocol() + "String_Node_Str" + new URL(endpointaddress).getHost()+ "String_Node_Str"+ new URL(endpointaddress).getPort()+ "String_Node_Str"+ fileName;
      String remoteFile=Util.uploadFileToAppServer(uploadURL,name,"String_Node_Str","String_Node_Str");
      TreeObject obj=new TreeObject(info.getJobname() + "String_Node_Str" + info.getJobversion()+ info.getSuffix(),xobject.getServerRoot(),TreeObject.JOB,info,null);
      if (!xobject.containsChild(obj)) {
        xobject.addChild(obj);
      }
      LocalTreeObjectRepository.getInstance().mergeNewTreeObject(obj);
      XObjectEditor editpart=(XObjectEditor)server.getSite().getWorkbenchWindow().getActivePage().openEditor(new XObjectEditorInput(obj,obj.getDisplayName()),"String_Node_Str");
    }
  }
 catch (  Exception e) {
  }
}

Fixed version (ground truth):
public void run(){
  if (this.server != null) {
    ISelection selection=server.getViewer().getSelection();
    xobject=(TreeParent)((IStructuredSelection)selection).getFirstElement();
  }
  if (xobject.getType() != TreeObject.JOB_REGISTRY)   return;
  try {
    XtentisPort port=Util.getPort(new URL(xobject.getEndpointAddress()),xobject.getUniverse(),xobject.getUsername(),xobject.getPassword());
    FileDialog fileDialog=new FileDialog(server.getSite().getShell(),SWT.OPEN);
    fileDialog.setFilterExtensions(new String[]{"String_Node_Str","String_Node_Str"});
    String name=fileDialog.open();
    boolean recover=false;
    boolean exist=false;
    if (name != null) {
      JobInfo info=getJobInfo(name);
      if (info == null)       return;
      WSMDMJobArray array=port.getMDMJob(new WSMDMNULL());
      exist=checkExist(array,info);
      if (exist) {
        recover=MessageDialog.openConfirm(this.server.getSite().getShell(),"String_Node_Str","String_Node_Str" + System.getProperty("String_Node_Str") + "String_Node_Str");
        if (!recover)         return;
 else         MessageDialog.openInformation(this.server.getSite().getShell(),"String_Node_Str","String_Node_Str");
      }
      String fileName=info.getJobname() + "String_Node_Str" + info.getJobversion()+ info.getSuffix();
      String endpointaddress=xobject.getEndpointAddress();
      String uploadURL=new URL(endpointaddress).getProtocol() + "String_Node_Str" + new URL(endpointaddress).getHost()+ "String_Node_Str"+ new URL(endpointaddress).getPort()+ "String_Node_Str"+ fileName;
      String remoteFile=Util.uploadFileToAppServer(uploadURL,name,"String_Node_Str","String_Node_Str");
      TreeObject jobFolder=xobject.findObject(TreeObject.BUILT_IN_CATEGORY_FOLDER,"String_Node_Str");
      if (jobFolder == null)       jobFolder=new TreeParent("String_Node_Str",xobject.getServerRoot(),TreeObject.CATEGORY_FOLDER,null,null);
      TreeObject obj=new TreeObject(info.getJobname() + "String_Node_Str" + info.getJobversion()+ info.getSuffix(),xobject.getServerRoot(),TreeObject.JOB,info,null);
      if (!xobject.containsChild(obj)) {
        ((TreeParent)jobFolder).addChild(obj);
        xobject.addChild(jobFolder);
      }
      LocalTreeObjectRepository.getInstance().mergeNewTreeObject(obj);
      XObjectEditor editpart=(XObjectEditor)server.getSite().getWorkbenchWindow().getActivePage().openEditor(new XObjectEditorInput(obj,obj.getDisplayName()),"String_Node_Str");
    }
  }
 catch (  Exception e) {
  }
}