Program: 125350
Project: 125350
Buggy source:
/** 
 * DOC tang Comment method "logOnProject".
 * @param project
 * @param monitorWrap
 * @throws PersistenceException
 * @throws LoginException
 */
public void logOnProject(Project project,IProgressMonitor monitor) throws LoginException, PersistenceException {
  try {
    TimeMeasure.display=CommonsPlugin.isDebugMode();
    TimeMeasure.displaySteps=CommonsPlugin.isDebugMode();
    TimeMeasure.measureActive=CommonsPlugin.isDebugMode();
    TimeMeasure.begin("String_Node_Str");
    try {
      System.getProperties().put("String_Node_Str",Boolean.FALSE.toString());
      IWorkspace workspace=ResourcesPlugin.getWorkspace();
      IWorkspaceDescription description=workspace.getDescription();
      if (description.isAutoBuilding()) {
        description.setAutoBuilding(false);
        try {
          workspace.setDescription(description);
        }
 catch (        CoreException e) {
        }
      }
      fullLogonFinished=false;
      SubMonitor subMonitor=SubMonitor.convert(monitor,MAX_TASKS);
      SubMonitor currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      getRepositoryContext().setProject(project);
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getBeforeLogonRecords().clear();
      this.repositoryFactoryFromProvider.beforeLogon(project);
      ProjectManager.getInstance().getBeforeLogonRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      checkProjectCompatibility(project);
      if (GlobalServiceRegister.getDefault().isServiceRegistered(IMavenUIService.class)) {
        IMavenUIService mavenUIService=(IMavenUIService)GlobalServiceRegister.getDefault().getService(IMavenUIService.class);
        if (mavenUIService != null) {
          mavenUIService.updateMavenResolver(true);
        }
      }
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask("String_Node_Str",1);
      ProjectManager.getInstance().getMigrationRecords().clear();
      executeMigrations(project,true,currentMonitor);
      ProjectManager.getInstance().getMigrationRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getLogonRecords().clear();
      this.repositoryFactoryFromProvider.logOnProject(project);
      ProjectManager.getInstance().getLogonRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      emptyTempFolder(project);
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ICoreUIService coreUiService=null;
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreUIService.class)) {
        coreUiService=(ICoreUIService)GlobalServiceRegister.getDefault().getService(ICoreUIService.class);
      }
      if (coreUiService != null) {
        coreUiService.componentsReset();
      }
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getMigrationRecords().clear();
      executeMigrations(project,false,currentMonitor);
      ProjectManager.getInstance().getMigrationRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      ICoreService coreService=getCoreService();
      if (coreService != null) {
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        String specifiedVersion=null;
        String currentVersion=JavaUtils.getProjectJavaVersion();
        String newVersion=null;
        if (CommonUIPlugin.isFullyHeadless()) {
          specifiedVersion=JavaHomeUtil.getSpecifiedJavaVersion();
        }
        if (specifiedVersion == null) {
          newVersion=currentVersion != null ? currentVersion : JavaUtils.DEFAULT_VERSION;
        }
 else {
          newVersion=specifiedVersion;
        }
        JavaUtils.updateProjectJavaVersion(newVersion);
        coreService.deleteAllJobs(false);
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        if (workspace instanceof Workspace) {
          ((Workspace)workspace).getFileSystemManager().getHistoryStore().clean(currentMonitor);
        }
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        if (CommonsPlugin.isHeadless()) {
          deleteAllRoutinesAndBeans();
        }
        try {
          coreService.syncAllRoutines();
          coreService.syncAllBeans();
        }
 catch (        SystemException e1) {
        }
      }
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      if (coreUiService != null && PluginChecker.isRulesPluginLoaded()) {
        coreUiService.syncAllRules();
      }
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (coreUiService != null) {
        coreService.syncLog4jSettings();
      }
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (CommonUIPlugin.isFullyHeadless()) {
        currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        coreService.syncLibraries(currentMonitor);
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
        coreService.createStatsLogAndImplicitParamter(project);
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
        coreService.synchronizeMapptingXML();
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
      }
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
        ITDQRepositoryService tdqRepositoryService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
        if (tdqRepositoryService != null) {
          tdqRepositoryService.initProxyRepository();
        }
      }
      fullLogonFinished=true;
      this.repositoryFactoryFromProvider.afterLogon(monitor);
    }
  finally {
      TimeMeasure.end("String_Node_Str");
      TimeMeasure.display=false;
      TimeMeasure.displaySteps=false;
      TimeMeasure.measureActive=false;
    }
    String str[]=new String[]{getRepositoryContext().getUser() + "String_Node_Str",projectManager.getCurrentProject() + "String_Node_Str"};
    log.info(Messages.getString("String_Node_Str",str));
  }
 catch (  LoginException e) {
    logOffProject();
    throw e;
  }
catch (  PersistenceException e) {
    logOffProject();
    throw e;
  }
catch (  RuntimeException e) {
    logOffProject();
    throw e;
  }
}

Fixed version (ground truth):
/** 
 * DOC tang Comment method "logOnProject".
 * @param project
 * @param monitorWrap
 * @throws PersistenceException
 * @throws LoginException
 */
public void logOnProject(Project project,IProgressMonitor monitor) throws LoginException, PersistenceException {
  try {
    TimeMeasure.display=CommonsPlugin.isDebugMode();
    TimeMeasure.displaySteps=CommonsPlugin.isDebugMode();
    TimeMeasure.measureActive=CommonsPlugin.isDebugMode();
    TimeMeasure.begin("String_Node_Str");
    try {
      System.getProperties().put("String_Node_Str",Boolean.FALSE.toString());
      IWorkspace workspace=ResourcesPlugin.getWorkspace();
      IWorkspaceDescription description=workspace.getDescription();
      if (description.isAutoBuilding()) {
        description.setAutoBuilding(false);
        try {
          workspace.setDescription(description);
        }
 catch (        CoreException e) {
        }
      }
      fullLogonFinished=false;
      SubMonitor subMonitor=SubMonitor.convert(monitor,MAX_TASKS);
      SubMonitor currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      getRepositoryContext().setProject(project);
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getBeforeLogonRecords().clear();
      this.repositoryFactoryFromProvider.beforeLogon(project);
      ProjectManager.getInstance().getBeforeLogonRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      checkProjectCompatibility(project);
      if (GlobalServiceRegister.getDefault().isServiceRegistered(IMavenUIService.class)) {
        IMavenUIService mavenUIService=(IMavenUIService)GlobalServiceRegister.getDefault().getService(IMavenUIService.class);
        if (mavenUIService != null) {
          mavenUIService.updateMavenResolver(true);
        }
      }
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask("String_Node_Str",1);
      ProjectManager.getInstance().getMigrationRecords().clear();
      executeMigrations(project,true,currentMonitor);
      ProjectManager.getInstance().getMigrationRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getLogonRecords().clear();
      this.repositoryFactoryFromProvider.logOnProject(project);
      ProjectManager.getInstance().getLogonRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      emptyTempFolder(project);
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ICoreUIService coreUiService=null;
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreUIService.class)) {
        coreUiService=(ICoreUIService)GlobalServiceRegister.getDefault().getService(ICoreUIService.class);
      }
      if (coreUiService != null) {
        coreUiService.componentsReset();
      }
      currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
      currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
      ProjectManager.getInstance().getMigrationRecords().clear();
      executeMigrations(project,false,currentMonitor);
      ProjectManager.getInstance().getMigrationRecords().clear();
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      ICoreService coreService=getCoreService();
      if (coreService != null) {
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        String specifiedVersion=null;
        String currentVersion=JavaUtils.getProjectJavaVersion(true);
        String newVersion=null;
        if (CommonUIPlugin.isFullyHeadless()) {
          specifiedVersion=JavaHomeUtil.getSpecifiedJavaVersion();
        }
        if (specifiedVersion == null) {
          newVersion=currentVersion != null ? currentVersion : JavaUtils.DEFAULT_VERSION;
        }
 else {
          newVersion=specifiedVersion;
        }
        JavaUtils.updateProjectJavaVersion(newVersion);
        coreService.deleteAllJobs(false);
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        if (workspace instanceof Workspace) {
          ((Workspace)workspace).getFileSystemManager().getHistoryStore().clean(currentMonitor);
        }
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        if (CommonsPlugin.isHeadless()) {
          deleteAllRoutinesAndBeans();
        }
        try {
          coreService.syncAllRoutines();
          coreService.syncAllBeans();
        }
 catch (        SystemException e1) {
        }
      }
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      if (coreUiService != null && PluginChecker.isRulesPluginLoaded()) {
        coreUiService.syncAllRules();
      }
      if (monitor != null && monitor.isCanceled()) {
        throw new OperationCanceledException("String_Node_Str");
      }
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (coreUiService != null) {
        coreService.syncLog4jSettings();
      }
      TimeMeasure.step("String_Node_Str","String_Node_Str");
      if (CommonUIPlugin.isFullyHeadless()) {
        currentMonitor=subMonitor.newChild(1,SubMonitor.SUPPRESS_NONE);
        currentMonitor.beginTask(Messages.getString("String_Node_Str"),1);
        coreService.syncLibraries(currentMonitor);
        TimeMeasure.step("String_Node_Str","String_Node_Str");
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
        coreService.createStatsLogAndImplicitParamter(project);
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
        coreService.synchronizeMapptingXML();
        if (monitor != null && monitor.isCanceled()) {
          throw new OperationCanceledException("String_Node_Str");
        }
      }
      if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {
        ITDQRepositoryService tdqRepositoryService=(ITDQRepositoryService)GlobalServiceRegister.getDefault().getService(ITDQRepositoryService.class);
        if (tdqRepositoryService != null) {
          tdqRepositoryService.initProxyRepository();
        }
      }
      fullLogonFinished=true;
      this.repositoryFactoryFromProvider.afterLogon(monitor);
    }
  finally {
      TimeMeasure.end("String_Node_Str");
      TimeMeasure.display=false;
      TimeMeasure.displaySteps=false;
      TimeMeasure.measureActive=false;
    }
    String str[]=new String[]{getRepositoryContext().getUser() + "String_Node_Str",projectManager.getCurrentProject() + "String_Node_Str"};
    log.info(Messages.getString("String_Node_Str",str));
  }
 catch (  LoginException e) {
    logOffProject();
    throw e;
  }
catch (  PersistenceException e) {
    logOffProject();
    throw e;
  }
catch (  RuntimeException e) {
    logOffProject();
    throw e;
  }
}