Program: 96197
Project: 96197
Buggy source:
/** 
 * loads a project
 */
private void loadProject(){
  AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerDatabase + NLS.bind(Messages.ExecutionControllerLoadingProject,m_job.getProjectName()),true);
  try {
    IProjectPO actualProject=ProjectPM.loadProjectByNameAndVersion(m_job.getProjectName(),m_job.getProjectMajor(),m_job.getProjectMinor());
    if (actualProject != null) {
      ProjectPM.loadProjectInROSession(actualProject);
      final IProjectPO currentProject=GeneralStorage.getInstance().getProject();
      m_job.setProject(currentProject);
      AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerDatabase + NLS.bind(Messages.ExecutionControllerProjectLoaded,m_job.getProjectName()),true);
    }
  }
 catch (  JBException e1) {
  }
  m_job.initAndValidate();
  AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerProjectCompleteness,true);
  CompletenessGuard.checkAll(m_job.getLanguage(),m_job.getProject());
  List<String> suitesWithIncompleteOM=new LinkedList<String>();
  List<String> suitesWithIncompleteTD=new LinkedList<String>();
  List<String> suitesWithMissingSpecTc=new LinkedList<String>();
  ITestSuitePO ts=m_job.getTestSuite();
  final String tsName=ts.getName();
  if (!ts.getSumSpecTcFlag()) {
    suitesWithMissingSpecTc.add(NLS.bind(Messages.ExecutionControllerCheckSpecTc,tsName));
    AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckSpecTc,tsName),true);
  }
  if (!ts.getSumOMFlag(ts.getAut())) {
    suitesWithIncompleteOM.add(NLS.bind(Messages.ExecutionControllerCheckOM,tsName));
    AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckOM,tsName),true);
  }
  if (!ts.getSumTdFlag(m_job.getLanguage())) {
    suitesWithIncompleteTD.add(NLS.bind(Messages.ExecutionControllerCheckTD,tsName));
    AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckTD,tsName),true);
  }
  StringBuilder sb=new StringBuilder(Messages.ExecutionControllerCheckError);
  sb.append(StringConstants.COLON);
  for (  String suiteName : suitesWithIncompleteOM) {
    sb.append(StringConstants.NEWLINE + StringConstants.TAB);
    sb.append(suiteName);
    sb.append(StringConstants.DOT + StringConstants.SPACE);
  }
  for (  String suiteName : suitesWithIncompleteTD) {
    sb.append(StringConstants.NEWLINE + StringConstants.TAB);
    sb.append(suiteName);
    sb.append(StringConstants.DOT + StringConstants.SPACE);
  }
  Validate.isTrue(suitesWithIncompleteOM.isEmpty() && suitesWithIncompleteTD.isEmpty(),sb.toString());
}

Fixed version (ground truth):
/** 
 * loads a project
 */
private void loadProject(){
  AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerDatabase + NLS.bind(Messages.ExecutionControllerLoadingProject,m_job.getProjectName()),true);
  try {
    IProjectPO actualProject=ProjectPM.loadProjectByNameAndVersion(m_job.getProjectName(),m_job.getProjectMajor(),m_job.getProjectMinor());
    if (actualProject != null) {
      ProjectPM.loadProjectInROSession(actualProject);
      final IProjectPO currentProject=GeneralStorage.getInstance().getProject();
      m_job.setProject(currentProject);
      AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerDatabase + NLS.bind(Messages.ExecutionControllerProjectLoaded,m_job.getProjectName()),true);
    }
  }
 catch (  JBException e1) {
  }
  m_job.initAndValidate();
  AbstractCmdlineClient.printConsoleLn(Messages.ExecutionControllerProjectCompleteness,true);
  CompletenessGuard.checkAll(m_job.getLanguage(),m_job.getProject());
  List<String> suitesWithIncompleteOM=new LinkedList<String>();
  List<String> suitesWithIncompleteTD=new LinkedList<String>();
  List<String> suitesWithMissingSpecTc=new LinkedList<String>();
  for (  ITestSuitePO ts : m_job.getTestSuites()) {
    final String tsName=ts.getName();
    if (!ts.getSumSpecTcFlag()) {
      suitesWithMissingSpecTc.add(NLS.bind(Messages.ExecutionControllerCheckSpecTc,tsName));
      AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckSpecTc,tsName),true);
    }
    if (!ts.getSumOMFlag(ts.getAut())) {
      suitesWithIncompleteOM.add(NLS.bind(Messages.ExecutionControllerCheckOM,tsName));
      AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckOM,tsName),true);
    }
    if (!ts.getSumTdFlag(m_job.getLanguage())) {
      suitesWithIncompleteTD.add(NLS.bind(Messages.ExecutionControllerCheckTD,tsName));
      AbstractCmdlineClient.printConsoleLn(NLS.bind(Messages.ExecutionControllerCheckTD,tsName),true);
    }
  }
  StringBuilder sb=new StringBuilder(Messages.ExecutionControllerCheckError);
  sb.append(StringConstants.COLON);
  for (  String suiteName : suitesWithIncompleteOM) {
    sb.append(StringConstants.NEWLINE + StringConstants.TAB);
    sb.append(suiteName);
    sb.append(StringConstants.DOT + StringConstants.SPACE);
  }
  for (  String suiteName : suitesWithIncompleteTD) {
    sb.append(StringConstants.NEWLINE + StringConstants.TAB);
    sb.append(suiteName);
    sb.append(StringConstants.DOT + StringConstants.SPACE);
  }
  Validate.isTrue(suitesWithIncompleteOM.isEmpty() && suitesWithIncompleteTD.isEmpty(),sb.toString());
}