Program: 125811
Project: 125811
Buggy source:
@Override public void postWindowOpen(){
  IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
  if (activePage != null && !(activePage.getPerspective().getId().equals(ProductUtils.PERSPECTIVE_DQ_ID))) {
    Job myJob=new Job("String_Node_Str"){
      @Override protected IStatus run(      IProgressMonitor monitor){
        RepositoryWorkUnit rwu=new RepositoryWorkUnit<Object>("String_Node_Str"){
          @Override protected void run() throws LoginException, PersistenceException {
          }
        }
;
        rwu.setAvoidUnloadResources(true);
        rwu.setUnloadResourcesAfterRun(true);
        rwu.setFilesModifiedOutsideOfRWU(true);
        rwu.setForceTransaction(true);
        ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(rwu);
        return org.eclipse.core.runtime.Status.OK_STATUS;
      }
    }
;
    myJob.schedule();
  }
  try {
    JavaHomeUtil.initializeJavaHome();
  }
 catch (  CoreException e1) {
    CommonExceptionHandler.process(e1);
  }
  createActions();
  registerActions();
  adviser.getHelper().postWindowOpen();
  IBrandingService service=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  getWindowConfigurer().setTitle(getWindowConfigurer().getTitle() + service.getBrandingConfiguration().getAdditionalTitle());
  if (!PluginChecker.isRefProjectLoaded()) {
    String[] prefsId={"String_Node_Str"};
    ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),Arrays.asList(prefsId),true);
  }
 else {
    String[] prefsId={"String_Node_Str"};
    ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),Arrays.asList(prefsId),false);
  }
  List<HidePreferencePageProvider> providers=HidePreferencePagesManager.getInstance().getProviders();
  List<String> needRemovedPrefs=new ArrayList<String>();
  for (  HidePreferencePageProvider provider : providers) {
    String prefPageId=provider.getPrefPageId();
    IHidePreferencePageValidator validator=provider.getValidator();
    if (prefPageId != null && (validator == null || validator.validate())) {
      needRemovedPrefs.add(prefPageId);
    }
  }
  ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),needRemovedPrefs,false);
  showStarting();
  regisitPerspectiveListener();
  if (PluginChecker.isBPMloaded()) {
    IPath path=WorkbenchPlugin.getDefault().getDataLocation();
    if (path == null) {
      return;
    }
    final File stateFile=path.append("String_Node_Str").toFile();
    if (stateFile.exists()) {
      FileInputStream input;
      try {
        input=new FileInputStream(stateFile);
        BufferedReader reader=new BufferedReader(new InputStreamReader(input,"String_Node_Str"));
        IMemento memento=XMLMemento.createReadRoot(reader);
        IMemento[] hideMenuArray=memento.getChild(IWorkbenchConstants.TAG_WINDOW).getChild(IWorkbenchConstants.TAG_PAGE).getChild(IWorkbenchConstants.TAG_PERSPECTIVES).getChild(IWorkbenchConstants.TAG_PERSPECTIVE).getChildren(IWorkbenchConstants.TAG_HIDE_MENU);
        if (hideMenuArray.length == 0) {
          activePage.resetPerspective();
        }
 else {
          String bonitaMenues="String_Node_Str";
          boolean isBPMFilterWork=false;
          for (int i=0; hideMenuArray != null && i < hideMenuArray.length; i++) {
            IMemento hideMenu=hideMenuArray[i];
            String string=hideMenu.getString(IWorkbenchConstants.TAG_ID);
            if (string != null && string.startsWith(bonitaMenues)) {
              isBPMFilterWork=true;
              break;
            }
          }
          if (!isBPMFilterWork) {
            activePage.resetPerspective();
          }
        }
      }
 catch (      Exception e) {
      }
    }
  }
  final IPreferenceStore store=CoreUIPlugin.getDefault().getPreferenceStore();
  if (!store.getBoolean(ITalendCorePrefConstants.DATA_COLLECTOR)) {
    TokenCollectorFactory.getFactory().send(true);
    store.setValue(ITalendCorePrefConstants.DATA_COLLECTOR,true);
    if (store instanceof ScopedPreferenceStore) {
      try {
        ((ScopedPreferenceStore)store).save();
      }
 catch (      IOException e) {
        ExceptionHandler.process(e);
      }
    }
  }
  IWorkbenchActivitySupport activitySupport=getWindowConfigurer().getWindow().getWorkbench().getActivitySupport();
  String hideUpdateSiteId="String_Node_Str";
  Set<String> enabledActivities=new HashSet<String>();
  enabledActivities.addAll(activitySupport.getActivityManager().getEnabledActivityIds());
  if (!PluginChecker.isSVNProviderPluginLoaded()) {
    if (activitySupport.getActivityManager().getActivity(hideUpdateSiteId).isDefined()) {
      enabledActivities.remove(hideUpdateSiteId);
    }
  }
 else {
    if (activitySupport.getActivityManager().getActivity(hideUpdateSiteId).isDefined()) {
      enabledActivities.add(hideUpdateSiteId);
    }
  }
  activitySupport.setEnabledActivityIds(enabledActivities);
  IWorkbenchWindowConfigurer workbenchWindowConfigurer=getWindowConfigurer();
  IActionBarConfigurer actionBarConfigurer=workbenchWindowConfigurer.getActionBarConfigurer();
  IMenuManager menuManager=actionBarConfigurer.getMenuManager();
  IContributionItem[] menuItems=menuManager.getItems();
  for (  IContributionItem menuItem : menuItems) {
    if ("String_Node_Str".equals(menuItem.getId())) {
      menuItem.setVisible(false);
    }
 else     if ("String_Node_Str".equals(menuItem.getId())) {
      menuManager.remove(menuItem);
    }
  }
  menuManager.update(true);
  RestoreAllRegisteredPerspectivesProvider perspProvider=new RestoreAllRegisteredPerspectivesProvider();
  IWorkbench workbench=PlatformUI.getWorkbench();
  IEclipseContext activeContext=((IEclipseContext)workbench.getService(IEclipseContext.class)).getActiveLeaf();
  ContextInjectionFactory.inject(perspProvider,activeContext);
  if (activePage != null && !(activePage.getActivePart() instanceof org.eclipse.ui.internal.ViewIntroAdapterPart && activePage.getPerspective().getId().equals(ProductUtils.PERSPECTIVE_DQ_ID))) {
    perspProvider.restoreAlwaysVisiblePerspectives();
  }
  perspProvider.closeAllEditors();
  if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
    ITDQRepositoryService tdqRepositoryService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
    if (tdqRepositoryService != null) {
      tdqRepositoryService.addPartListener();
      tdqRepositoryService.addSoftwareSystemUpdateListener();
    }
  }
}

Fixed version (ground truth):
@Override public void postWindowOpen(){
  IWorkbenchPage activePage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
  if (activePage != null && !(activePage.getPerspective().getId().equals(ProductUtils.PERSPECTIVE_DQ_ID))) {
    Job myJob=new Job("String_Node_Str"){
      @Override protected IStatus run(      IProgressMonitor monitor){
        RepositoryWorkUnit rwu=new RepositoryWorkUnit<Object>("String_Node_Str"){
          @Override protected void run() throws LoginException, PersistenceException {
          }
        }
;
        rwu.setAvoidUnloadResources(true);
        rwu.setUnloadResourcesAfterRun(true);
        rwu.setFilesModifiedOutsideOfRWU(true);
        rwu.setForceTransaction(true);
        ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(rwu);
        return org.eclipse.core.runtime.Status.OK_STATUS;
      }
    }
;
    myJob.schedule();
  }
  try {
    JavaHomeUtil.initializeJavaHome();
  }
 catch (  CoreException e1) {
    CommonExceptionHandler.process(e1);
  }
  createActions();
  registerActions();
  adviser.getHelper().postWindowOpen();
  IBrandingService service=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  getWindowConfigurer().setTitle(getWindowConfigurer().getTitle() + service.getBrandingConfiguration().getAdditionalTitle());
  if (!PluginChecker.isRefProjectLoaded()) {
    String[] prefsId={"String_Node_Str"};
    ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),Arrays.asList(prefsId),true);
  }
 else {
    String[] prefsId={"String_Node_Str"};
    ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),Arrays.asList(prefsId),false);
  }
  List<HidePreferencePageProvider> providers=HidePreferencePagesManager.getInstance().getProviders();
  List<String> needRemovedPrefs=new ArrayList<String>();
  for (  HidePreferencePageProvider provider : providers) {
    String prefPageId=provider.getPrefPageId();
    IHidePreferencePageValidator validator=provider.getValidator();
    if (prefPageId != null && (validator == null || validator.validate())) {
      needRemovedPrefs.add(prefPageId);
    }
  }
  ApplicationDeletionUtil.removeAndResetPreferencePages(this.getWindowConfigurer().getWindow(),needRemovedPrefs,false);
  showStarting();
  regisitPerspectiveListener();
  if (PluginChecker.isBPMloaded()) {
    IPath path=WorkbenchPlugin.getDefault().getDataLocation();
    if (path == null) {
      return;
    }
    final File stateFile=path.append("String_Node_Str").toFile();
    if (stateFile.exists()) {
      FileInputStream input;
      try {
        input=new FileInputStream(stateFile);
        BufferedReader reader=new BufferedReader(new InputStreamReader(input,"String_Node_Str"));
        IMemento memento=XMLMemento.createReadRoot(reader);
        IMemento[] hideMenuArray=memento.getChild(IWorkbenchConstants.TAG_WINDOW).getChild(IWorkbenchConstants.TAG_PAGE).getChild(IWorkbenchConstants.TAG_PERSPECTIVES).getChild(IWorkbenchConstants.TAG_PERSPECTIVE).getChildren(IWorkbenchConstants.TAG_HIDE_MENU);
        if (hideMenuArray.length == 0) {
          activePage.resetPerspective();
        }
 else {
          String bonitaMenues="String_Node_Str";
          boolean isBPMFilterWork=false;
          for (int i=0; hideMenuArray != null && i < hideMenuArray.length; i++) {
            IMemento hideMenu=hideMenuArray[i];
            String string=hideMenu.getString(IWorkbenchConstants.TAG_ID);
            if (string != null && string.startsWith(bonitaMenues)) {
              isBPMFilterWork=true;
              break;
            }
          }
          if (!isBPMFilterWork) {
            activePage.resetPerspective();
          }
        }
      }
 catch (      Exception e) {
      }
    }
  }
  final IPreferenceStore store=CoreUIPlugin.getDefault().getPreferenceStore();
  if (!store.getBoolean(ITalendCorePrefConstants.DATA_COLLECTOR)) {
    TokenCollectorFactory.getFactory().send(true);
    store.setValue(ITalendCorePrefConstants.DATA_COLLECTOR,true);
    if (store instanceof ScopedPreferenceStore) {
      try {
        ((ScopedPreferenceStore)store).save();
      }
 catch (      IOException e) {
        ExceptionHandler.process(e);
      }
    }
  }
  IWorkbenchActivitySupport activitySupport=getWindowConfigurer().getWindow().getWorkbench().getActivitySupport();
  String hideUpdateSiteId="String_Node_Str";
  Set<String> enabledActivities=new HashSet<String>();
  enabledActivities.addAll(activitySupport.getActivityManager().getEnabledActivityIds());
  if (!PluginChecker.isSVNProviderPluginLoaded()) {
    if (activitySupport.getActivityManager().getActivity(hideUpdateSiteId).isDefined()) {
      enabledActivities.remove(hideUpdateSiteId);
    }
  }
 else {
    if (activitySupport.getActivityManager().getActivity(hideUpdateSiteId).isDefined()) {
      enabledActivities.add(hideUpdateSiteId);
    }
  }
  activitySupport.setEnabledActivityIds(enabledActivities);
  IWorkbenchWindowConfigurer workbenchWindowConfigurer=getWindowConfigurer();
  IActionBarConfigurer actionBarConfigurer=workbenchWindowConfigurer.getActionBarConfigurer();
  IMenuManager menuManager=actionBarConfigurer.getMenuManager();
  IContributionItem[] menuItems=menuManager.getItems();
  for (  IContributionItem menuItem : menuItems) {
    if ("String_Node_Str".equals(menuItem.getId())) {
      menuItem.setVisible(false);
    }
 else     if ("String_Node_Str".equals(menuItem.getId())) {
      menuManager.remove(menuItem);
    }
  }
  menuManager.update(true);
  RestoreAllRegisteredPerspectivesProvider perspProvider=new RestoreAllRegisteredPerspectivesProvider();
  IWorkbench workbench=PlatformUI.getWorkbench();
  IEclipseContext activeContext=((IEclipseContext)workbench.getActiveWorkbenchWindow().getService(IEclipseContext.class)).getActiveLeaf();
  ContextInjectionFactory.inject(perspProvider,activeContext);
  if (activePage != null && !(activePage.getActivePart() instanceof org.eclipse.ui.internal.ViewIntroAdapterPart && activePage.getPerspective().getId().equals(ProductUtils.PERSPECTIVE_DQ_ID))) {
    perspProvider.restoreAlwaysVisiblePerspectives();
  }
  perspProvider.closeAllEditors();
  if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
    ITDQRepositoryService tdqRepositoryService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
    if (tdqRepositoryService != null) {
      tdqRepositoryService.addPartListener();
      tdqRepositoryService.addSoftwareSystemUpdateListener();
    }
  }
}