Program: 121857
Project: 121857
Buggy source:
/** 
 * DOC smallet Comment method "logIn".
 * @param project
 * @throws Exception
 */
protected boolean logIn(final Project project){
  final ProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  ConnectionBean connBean=loginComposite.getConnection();
  final boolean needRestartForLocal=loginComposite.needRestartForLocal();
  if (connBean == null || project == null || project.getLabel() == null) {
    return false;
  }
  PreferenceManipulator prefManipulator=new PreferenceManipulator(CorePlugin.getDefault().getPreferenceStore());
  prefManipulator.setLastConnection(connBean.getName());
  prefManipulator.setLastProject(project.getTechnicalLabel());
  saveLastConnBean(connBean);
  if (project.getLanguage().equals(ECodeLanguage.PERL)) {
    IPreferenceStore store=CorePlugin.getDefault().getPreferenceStore();
    String prelExecutableValue=store.getString(ITalendCorePrefConstants.PERL_INTERPRETER);
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ICorePerlService.class)) {
      ICorePerlService service=(ICorePerlService)GlobalServiceRegister.getDefault().getService(ICorePerlService.class);
      service.setExecutablePreference(prelExecutableValue);
    }
  }
  try {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisService.class)) {
      final ICoreTisService service=(ICoreTisService)GlobalServiceRegister.getDefault().getService(ICoreTisService.class);
      if (service != null) {
        if (!service.validProject(project,needRestartForLocal)) {
          LoginComposite.isRestart=true;
          return true;
        }
      }
    }
  }
 catch (  PersistenceException e) {
    e.printStackTrace();
    loginComposite.populateProjectList();
    MessageDialog.openError(getShell(),getShell().getText(),e.getMessage());
    return false;
  }
  IPreferenceStore prefStore=PlatformUI.getPreferenceStore();
  boolean checkTisVersion=prefStore.getBoolean(ITalendCorePrefConstants.EXCHANGE_CHECK_TIS_VERSION);
  IBrandingService brandingService=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  if (!checkTisVersion && brandingService.isPoweredbyTalend()) {
    int count=prefStore.getInt(TalendForgeDialog.LOGINCOUNT);
    ExchangeUser exchangeUser=project.getExchangeUser();
    boolean isExchangeLogon=exchangeUser.getLogin() != null && !exchangeUser.getLogin().equals("String_Node_Str");
    boolean isUserPassRight=true;
    if (isExchangeLogon) {
      if (PluginChecker.isExchangeSystemLoaded()) {
        IExchangeService service=(IExchangeService)GlobalServiceRegister.getDefault().getService(IExchangeService.class);
        if (service.checkUserAndPass(exchangeUser.getUsername(),exchangeUser.getPassword()) != null) {
          isUserPassRight=false;
        }
      }
    }
    if (!isExchangeLogon || !isUserPassRight) {
      if (count < 10) {
        TalendForgeDialog tfDialog=new TalendForgeDialog(this.getShell(),project);
        tfDialog.open();
      }
    }
  }
  final Shell shell=this.getShell();
  ProgressMonitorDialog dialog=new ProgressMonitorDialog(shell);
  IRunnableWithProgress runnable=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
      try {
        factory.logOnProject(project,monitor);
      }
 catch (      LoginException e) {
        throw new InvocationTargetException(e);
      }
catch (      PersistenceException e) {
        throw new InvocationTargetException(e);
      }
catch (      OperationCanceledException e) {
        throw new InterruptedException(e.getLocalizedMessage());
      }
      monitor.done();
    }
  }
;
  try {
    dialog.run(true,true,runnable);
  }
 catch (  InvocationTargetException e) {
    if (PluginChecker.isSVNProviderPluginLoaded()) {
      loginComposite.populateProjectList();
      MessageBoxExceptionHandler.process(e.getTargetException(),getShell());
    }
 else {
      loginComposite.populateTOSProjectList();
      MessageBoxExceptionHandler.process(e.getTargetException(),getShell());
    }
    return false;
  }
catch (  InterruptedException e) {
    if (PluginChecker.isSVNProviderPluginLoaded()) {
      loginComposite.populateProjectList();
    }
 else {
      loginComposite.populateTOSProjectList();
    }
    return false;
  }
  return true;
}

Fixed version (ground truth):
/** 
 * DOC smallet Comment method "logIn".
 * @param project
 * @throws Exception
 */
protected boolean logIn(final Project project){
  final ProxyRepositoryFactory factory=ProxyRepositoryFactory.getInstance();
  ConnectionBean connBean=loginComposite.getConnection();
  final boolean needRestartForLocal=loginComposite.needRestartForLocal();
  if (connBean == null || project == null || project.getLabel() == null) {
    return false;
  }
  PreferenceManipulator prefManipulator=new PreferenceManipulator(CorePlugin.getDefault().getPreferenceStore());
  prefManipulator.setLastProject(project.getTechnicalLabel());
  saveLastConnBean(connBean);
  if (project.getLanguage().equals(ECodeLanguage.PERL)) {
    IPreferenceStore store=CorePlugin.getDefault().getPreferenceStore();
    String prelExecutableValue=store.getString(ITalendCorePrefConstants.PERL_INTERPRETER);
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ICorePerlService.class)) {
      ICorePerlService service=(ICorePerlService)GlobalServiceRegister.getDefault().getService(ICorePerlService.class);
      service.setExecutablePreference(prelExecutableValue);
    }
  }
  try {
    if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisService.class)) {
      final ICoreTisService service=(ICoreTisService)GlobalServiceRegister.getDefault().getService(ICoreTisService.class);
      if (service != null) {
        if (!service.validProject(project,needRestartForLocal)) {
          LoginComposite.isRestart=true;
          return true;
        }
      }
    }
  }
 catch (  PersistenceException e) {
    e.printStackTrace();
    loginComposite.populateProjectList();
    MessageDialog.openError(getShell(),getShell().getText(),e.getMessage());
    return false;
  }
  IPreferenceStore prefStore=PlatformUI.getPreferenceStore();
  boolean checkTisVersion=prefStore.getBoolean(ITalendCorePrefConstants.EXCHANGE_CHECK_TIS_VERSION);
  IBrandingService brandingService=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  if (!checkTisVersion && brandingService.isPoweredbyTalend()) {
    int count=prefStore.getInt(TalendForgeDialog.LOGINCOUNT);
    ExchangeUser exchangeUser=project.getExchangeUser();
    boolean isExchangeLogon=exchangeUser.getLogin() != null && !exchangeUser.getLogin().equals("String_Node_Str");
    boolean isUserPassRight=true;
    if (isExchangeLogon) {
      if (PluginChecker.isExchangeSystemLoaded()) {
        IExchangeService service=(IExchangeService)GlobalServiceRegister.getDefault().getService(IExchangeService.class);
        if (service.checkUserAndPass(exchangeUser.getUsername(),exchangeUser.getPassword()) != null) {
          isUserPassRight=false;
        }
      }
    }
    if (!isExchangeLogon || !isUserPassRight) {
      if (count < 10) {
        TalendForgeDialog tfDialog=new TalendForgeDialog(this.getShell(),project);
        tfDialog.open();
      }
    }
  }
  final Shell shell=this.getShell();
  ProgressMonitorDialog dialog=new ProgressMonitorDialog(shell);
  IRunnableWithProgress runnable=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
      try {
        factory.logOnProject(project,monitor);
      }
 catch (      LoginException e) {
        throw new InvocationTargetException(e);
      }
catch (      PersistenceException e) {
        throw new InvocationTargetException(e);
      }
catch (      OperationCanceledException e) {
        throw new InterruptedException(e.getLocalizedMessage());
      }
      monitor.done();
    }
  }
;
  try {
    dialog.run(true,true,runnable);
  }
 catch (  InvocationTargetException e) {
    if (PluginChecker.isSVNProviderPluginLoaded()) {
      loginComposite.populateProjectList();
      MessageBoxExceptionHandler.process(e.getTargetException(),getShell());
    }
 else {
      loginComposite.populateTOSProjectList();
      MessageBoxExceptionHandler.process(e.getTargetException(),getShell());
    }
    return false;
  }
catch (  InterruptedException e) {
    if (PluginChecker.isSVNProviderPluginLoaded()) {
      loginComposite.populateProjectList();
    }
 else {
      loginComposite.populateTOSProjectList();
    }
    return false;
  }
  return true;
}