Program: 143962
Project: 143962
Buggy source:
private void runExperiment(String methodName,boolean detailedLog){
  Integrator integrator;
  int experimentRepetitions=1;
  Matcher patternMatcher=Pattern.compile("String_Node_Str").matcher(methodName);
  if (patternMatcher.find()) {
    methodName=patternMatcher.group(1);
    if (patternMatcher.group(2) != null)     experimentRepetitions=Integer.parseInt(patternMatcher.group(2));
  }
  List<Results> results=new ArrayList<>();
  for (int repetition=0; repetition < experimentRepetitions; repetition++) {
    if (methodName.equals("String_Node_Str")) {
      integrator=new MajorityVoteIntegrator.Builder(predictedData).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new AgreementIntegrator.Builder(predictedData).highestOrder(-1).build();
 else       integrator=new AgreementIntegrator.Builder(predictedData).highestOrder(Integer.parseInt(methodNameParts[1])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new BayesianIntegrator.Builder(predictedData).build();
 else       integrator=new BayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new CoupledBayesianIntegrator.Builder(predictedData).build();
 else       integrator=new CoupledBayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new HierarchicalCoupledBayesianIntegrator.Builder(predictedData).build();
 else       integrator=new HierarchicalCoupledBayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      integrator=new TuffyLogicIntegrator.Builder(predictedData).addConstraints(constraints).workingDirectory("String_Node_Str").logProgress(detailedLog).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1) {
        integrator=new LogicIntegrator.Builder(predictedData).addConstraints(constraints).logProgress(detailedLog).build();
      }
 else {
        boolean sampleEstimates=methodNameParts[methodNameParts.length - 1].equals("String_Node_Str");
        integrator=new LogicIntegrator.Builder(predictedData).addConstraints(constraints).sampleErrorRatesEstimates(sampleEstimates).logProgress(detailedLog).build();
      }
    }
 else {
      throw new IllegalArgumentException("String_Node_Str" + methodName + "String_Node_Str");
    }
    Integrator.ErrorRates errorRates=integrator.errorRates();
    Integrator.Data<Integrator.Data.PredictedInstance> integratedData=integrator.integratedData();
    Results result=evaluate(errorRates,integratedData,methodName);
    results.add(result);
    if (detailedLog)     logResults(result,true);
  }
  logResults(new Results.Statistics(results),detailedLog);
}

Fixed version (ground truth):
private void runExperiment(String methodName,boolean detailedLog){
  Integrator integrator;
  int experimentRepetitions=2;
  Matcher patternMatcher=Pattern.compile("String_Node_Str").matcher(methodName);
  if (patternMatcher.find()) {
    methodName=patternMatcher.group(1);
    if (patternMatcher.group(2) != null)     experimentRepetitions=Integer.parseInt(patternMatcher.group(2));
  }
  List<Results> results=new ArrayList<>();
  for (int repetition=0; repetition < experimentRepetitions; repetition++) {
    if (methodName.equals("String_Node_Str")) {
      integrator=new MajorityVoteIntegrator.Builder(predictedData).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new AgreementIntegrator.Builder(predictedData).highestOrder(-1).build();
 else       integrator=new AgreementIntegrator.Builder(predictedData).highestOrder(Integer.parseInt(methodNameParts[1])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new BayesianIntegrator.Builder(predictedData).build();
 else       integrator=new BayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new CoupledBayesianIntegrator.Builder(predictedData).build();
 else       integrator=new CoupledBayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1)       integrator=new HierarchicalCoupledBayesianIntegrator.Builder(predictedData).build();
 else       integrator=new HierarchicalCoupledBayesianIntegrator.Builder(predictedData).numberOfBurnInSamples(Integer.parseInt(methodNameParts[1])).numberOfThinningSamples(Integer.parseInt(methodNameParts[2])).numberOfSamples(Integer.parseInt(methodNameParts[3])).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      integrator=new TuffyLogicIntegrator.Builder(predictedData).addConstraints(constraints).workingDirectory("String_Node_Str").logProgress(detailedLog).build();
    }
 else     if (methodName.startsWith("String_Node_Str")) {
      String[] methodNameParts=methodName.split("String_Node_Str");
      if (methodNameParts.length == 1) {
        integrator=new LogicIntegrator.Builder(predictedData).addConstraints(constraints).logProgress(detailedLog).build();
      }
 else {
        boolean sampleEstimates=methodNameParts[methodNameParts.length - 1].equals("String_Node_Str");
        integrator=new LogicIntegrator.Builder(predictedData).addConstraints(constraints).sampleErrorRatesEstimates(sampleEstimates).logProgress(detailedLog).build();
      }
    }
 else {
      throw new IllegalArgumentException("String_Node_Str" + methodName + "String_Node_Str");
    }
    Integrator.ErrorRates errorRates=integrator.errorRates();
    Integrator.Data<Integrator.Data.PredictedInstance> integratedData=integrator.integratedData();
    Results result=evaluate(errorRates,integratedData,methodName);
    results.add(result);
    if (detailedLog)     logResults(result,true);
  }
  logResults(new Results.Statistics(results),detailedLog);
}