Program: 141042
Project: 141042
Buggy source:
/** 
 * Public constructor.
 * @param itSuite the it suite
 * @param globalsConf global configuration for tests
 * @param applicationPath path to the application to test
 * @param testsDataDirectory file with the test configuration
 * @param outputTestsDirectory output test directory with result executeapplication
 * @param testName test name
 * @throws IOException if an error occurs while reading the configurationfile.
 * @throws EoulsanException if an error occurs while search expected directoryof the test.
 */
public IT(final ITSuite itSuite,final Properties globalsConf,final File applicationPath,final File testsDataDirectory,final File outputTestsDirectory,final String testName) throws IOException, EoulsanException {
  checkExistingDirectoryFile(testsDataDirectory,"String_Node_Str");
  checkExistingDirectoryFile(outputTestsDirectory,"String_Node_Str");
  checkExistingDirectoryFile(applicationPath,"String_Node_Str");
  this.itSuite=itSuite;
  this.applicationPath=applicationPath;
  this.testName=testName;
  this.testDataDirectory=new File(testsDataDirectory,this.testName);
  this.outputTestDirectory=new File(outputTestsDirectory,this.testName);
  this.testConf=loadConfigurationFile(globalsConf);
  this.environmentVariables=extractEnvironmentVariables();
  this.itResult=new ITResult(this);
  this.isRemoveFileRequired=Boolean.parseBoolean(this.testConf.getProperty(SUCCESS_IT_DELETE_FILE_CONF_KEY));
  this.generateAllExpectedDirectoryTest=this.itSuite.isGenerateAllExpectedDirectoryTest();
  this.generateNewExpectedDirectoryTests=this.itSuite.isGenerateNewExpectedDirectoryTests();
  this.generateExpectedDirectoryTestData=this.generateAllExpectedDirectoryTest || this.generateNewExpectedDirectoryTests;
  this.manualGenerationExpectedData=Boolean.parseBoolean(this.testConf.getProperty(ITFactory.MANUAL_GENERATION_EXPECTED_DATA_CONF_KEY));
  this.expectedTestDirectory=retrieveExpectedDirectory();
  this.fileToComparePatterns=extractPattern(ITFactory.FILE_TO_COMPARE_PATTERNS_CONF_KEY);
  this.fileToRemovePatterns=extractPattern(ITFactory.FILE_TO_REMOVE_CONF_KEY);
  this.excludeToComparePatterns=buildExcludePatterns(extractPattern(ITFactory.EXCLUDE_TO_COMPARE_PATTERNS_CONF_KEY));
  this.checkExistenceFilePatterns=extractPattern(ITFactory.CHECK_EXISTENCE_FILE_PATTERNS_CONF_KEY);
  this.checkLengthFilePatterns=extractPattern(ITFactory.CHECK_LENGTH_FILE_PATTERNS_CONF_KEY);
  this.checkAbsenceFilePatterns=this.testConf.getProperty(ITFactory.CHECK_ABSENCE_FILE_PATTERNS_CONF_KEY);
  if (this.testConf.contains(ITFactory.DESCRIPTION_CONF_KEY)) {
    this.description=this.testConf.getProperty(ITFactory.DESCRIPTION_CONF_KEY) + "String_Node_Str" + this.itSuite.getActionType();
  }
 else {
    this.description=this.testName + "String_Node_Str" + this.itSuite.getActionType();
  }
}

Fixed version (ground truth):
/** 
 * Public constructor.
 * @param itSuite the it suite
 * @param globalsConf global configuration for tests
 * @param applicationPath path to the application to test
 * @param testsDataDirectory file with the test configuration
 * @param outputTestsDirectory output test directory with result executeapplication
 * @param testName test name
 * @throws IOException if an error occurs while reading the configurationfile.
 * @throws EoulsanException if an error occurs while search expected directoryof the test.
 */
public IT(final ITSuite itSuite,final Properties globalsConf,final File applicationPath,final File testsDataDirectory,final File outputTestsDirectory,final String testName) throws IOException, EoulsanException {
  checkExistingDirectoryFile(testsDataDirectory,"String_Node_Str");
  checkExistingDirectoryFile(outputTestsDirectory,"String_Node_Str");
  checkExistingDirectoryFile(applicationPath,"String_Node_Str");
  this.itSuite=itSuite;
  this.applicationPath=applicationPath;
  this.testName=testName;
  this.testDataDirectory=new File(testsDataDirectory,this.testName);
  this.outputTestDirectory=new File(outputTestsDirectory,this.testName);
  this.testConf=loadConfigurationFile(globalsConf);
  this.environmentVariables=extractEnvironmentVariables();
  this.itResult=new ITResult(this);
  this.isRemoveFileRequired=Boolean.parseBoolean(this.testConf.getProperty(SUCCESS_IT_DELETE_FILE_CONF_KEY));
  this.generateAllExpectedDirectoryTest=this.itSuite.isGenerateAllExpectedDirectoryTest();
  this.generateNewExpectedDirectoryTests=this.itSuite.isGenerateNewExpectedDirectoryTests();
  this.generateExpectedDirectoryTestData=this.generateAllExpectedDirectoryTest || this.generateNewExpectedDirectoryTests;
  this.manualGenerationExpectedData=Boolean.parseBoolean(this.testConf.getProperty(ITFactory.MANUAL_GENERATION_EXPECTED_DATA_CONF_KEY));
  this.expectedTestDirectory=retrieveExpectedDirectory();
  this.fileToComparePatterns=extractPattern(ITFactory.FILE_TO_COMPARE_PATTERNS_CONF_KEY);
  this.fileToRemovePatterns=extractPattern(ITFactory.FILE_TO_REMOVE_CONF_KEY);
  this.excludeToComparePatterns=buildExcludePatterns(extractPattern(ITFactory.EXCLUDE_TO_COMPARE_PATTERNS_CONF_KEY));
  this.checkExistenceFilePatterns=extractPattern(ITFactory.CHECK_EXISTENCE_FILE_PATTERNS_CONF_KEY);
  this.checkLengthFilePatterns=extractPattern(ITFactory.CHECK_LENGTH_FILE_PATTERNS_CONF_KEY);
  this.checkAbsenceFilePatterns=this.testConf.getProperty(ITFactory.CHECK_ABSENCE_FILE_PATTERNS_CONF_KEY);
  if (this.testConf.containsKey(ITFactory.DESCRIPTION_CONF_KEY)) {
    this.description=this.testConf.getProperty(ITFactory.DESCRIPTION_CONF_KEY) + "String_Node_Str" + this.itSuite.getActionType();
  }
 else {
    this.description=this.testName + "String_Node_Str" + this.itSuite.getActionType();
  }
}