Program: 118181
Project: 118181
Buggy source:
@Override public void partClosed(IWorkbenchPart part){
  if (part instanceof AbstractMultiPageTalendEditor && currentProcess != null) {
    AbstractMultiPageTalendEditor mpte=(AbstractMultiPageTalendEditor)part;
    if (mpte.isKeepPropertyLocked()) {
      currentProcess=null;
      return;
    }
    IProcess process=getJobFromActivatedEditor(part);
    if (process != null) {
      Problems.removeProblemsByProcess(process);
      Problems.removeJob(process);
      IRunProcessService service=DesignerPlugin.getDefault().getRunProcessService();
      service.removeProcess(process);
      CodeView.refreshCodeView(null);
      if (currentProcess == process) {
        Contexts.setTitle("String_Node_Str");
        Contexts.clearAll();
        if (lastProcessOpened == currentProcess) {
          lastProcessOpened=null;
        }
        currentProcess=null;
        for (        IJobTrackerListener listener : jobTrackerListeners) {
          listener.allJobClosed();
        }
      }
 else       if (lastProcessOpened == process) {
        lastProcessOpened=currentProcess;
      }
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ISQLBuilderService.class)) {
        ISQLBuilderService sqlBuilderService=(ISQLBuilderService)GlobalServiceRegister.getDefault().getService(ISQLBuilderService.class);
        sqlBuilderService.closeSqlBuilderDialogs(process.getName());
      }
    }
  }
 else   if (part instanceof IEditorPart) {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(IDiagramModelService.class) && CorePlugin.getDefault().getDiagramModelService().isBusinessDiagramEditor((IEditorPart)part)) {
      Contexts.setTitle("String_Node_Str");
      Contexts.clearAll();
    }
  }
  if (part instanceof AbstractMultiPageTalendEditor) {
    AbstractMultiPageTalendEditor mpte=(AbstractMultiPageTalendEditor)part;
    mpte.beforeDispose();
  }
  IWorkbenchPage page=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
  if (page != null) {
    if (page.getActiveEditor() != null) {
      if (!page.getActiveEditor().getSite().getId().equals(DISTARTID) && !page.getActiveEditor().getSite().getId().equals(MDMSTARTID)) {
        JobSettings.switchToCurJobSettingsView();
      }
    }
  }
}

Fixed version (ground truth):
@Override public void partClosed(IWorkbenchPart part){
  if (part instanceof AbstractMultiPageTalendEditor && currentProcess != null) {
    AbstractMultiPageTalendEditor mpte=(AbstractMultiPageTalendEditor)part;
    if (mpte.isKeepPropertyLocked()) {
      currentProcess=null;
      return;
    }
    IProcess process=getJobFromActivatedEditor(part);
    if (process != null) {
      Problems.removeProblemsByProcess(process);
      Problems.removeJob(process);
      IRunProcessService service=DesignerPlugin.getDefault().getRunProcessService();
      service.removeProcess(process);
      CodeView.refreshCodeView(null);
      if (currentProcess == process) {
        Contexts.setTitle("String_Node_Str");
        Contexts.clearAll();
        if (lastProcessOpened == currentProcess) {
          lastProcessOpened=null;
        }
        currentProcess=null;
        for (        IJobTrackerListener listener : jobTrackerListeners) {
          listener.allJobClosed();
        }
      }
 else       if (lastProcessOpened == process) {
        lastProcessOpened=currentProcess;
      }
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ISQLBuilderService.class)) {
        ISQLBuilderService sqlBuilderService=(ISQLBuilderService)GlobalServiceRegister.getDefault().getService(ISQLBuilderService.class);
        sqlBuilderService.closeSqlBuilderDialogs(process.getName());
      }
    }
  }
 else   if (part instanceof IEditorPart) {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(IDiagramModelService.class) && CorePlugin.getDefault().getDiagramModelService().isBusinessDiagramEditor((IEditorPart)part)) {
      Contexts.setTitle("String_Node_Str");
      Contexts.clearAll();
    }
  }
  if (part instanceof AbstractMultiPageTalendEditor) {
    AbstractMultiPageTalendEditor mpte=(AbstractMultiPageTalendEditor)part;
    mpte.beforeDispose();
    JobSettings.switchToCurJobSettingsView();
  }
}