Program: 39123
Project: 39123
Buggy source:
/** 
 * Create one (maybe two) new individuals by randomly sampling from the elites in random bins. The reason that two individuals may be added is if crossover occurs. In this case, both children can potentially be added  to the archive.
 */
@Override public void newIndividual(){
  boolean newEliteProduced=false;
  String label=archive.randomBinLabel();
  Genotype<T> parent1=archive.getElite(label).individual;
  long parentId1=parent1.getId();
  long parentId2=-1;
  Genotype<T> child1=parent1.copy();
  if (mating && RandomNumbers.randomGenerator.nextDouble() < crossoverRate) {
    String otherLabel=archive.randomBinLabel();
    Genotype<T> parent2=archive.getElite(otherLabel).individual;
    parentId2=parent2.getId();
    Genotype<T> child2=parent2.copy();
    child2=child1.crossover(child2);
    child2.mutate();
    EvolutionaryHistory.logLineageData(parentId1,parentId2,child2);
    Score<T> s2=task.evaluate(child2);
    boolean child2WasElite=archive.add(s2);
    newEliteProduced=newEliteProduced || child2WasElite;
    if (child2WasElite && io) {
    }
  }
  child1.mutate();
  if (parentId2 == -1) {
    EvolutionaryHistory.logLineageData(parentId1,child1);
  }
 else {
    EvolutionaryHistory.logLineageData(parentId1,parentId2,child1);
  }
  Score<T> s1=task.evaluate(child1);
  boolean child1WasElite=archive.add(s1);
  newEliteProduced=newEliteProduced || child1WasElite;
  if (child1WasElite && io) {
  }
  iterations++;
  if (newEliteProduced) {
    iterationsWithoutElite=0;
  }
 else {
    iterationsWithoutElite++;
  }
}

Fixed version (ground truth):
/** 
 * Create one (maybe two) new individuals by randomly sampling from the elites in random bins. The reason that two individuals may be added is if crossover occurs. In this case, both children can potentially be added  to the archive.
 */
@Override public void newIndividual(){
  boolean newEliteProduced=false;
  String label=archive.randomBinLabel();
  Genotype<T> parent1=archive.getElite(label).individual;
  long parentId1=parent1.getId();
  long parentId2=-1;
  Genotype<T> child1=parent1.copy();
  if (mating && RandomNumbers.randomGenerator.nextDouble() < crossoverRate) {
    String otherLabel=archive.randomBinLabel();
    Genotype<T> parent2=archive.getElite(otherLabel).individual;
    parentId2=parent2.getId();
    Genotype<T> child2=parent2.copy();
    child2=child1.crossover(child2);
    child2.mutate();
    EvolutionaryHistory.logLineageData(parentId1,parentId2,child2);
    Score<T> s2=task.evaluate(child2);
    boolean child2WasElite=archive.add(s2);
    newEliteProduced=newEliteProduced || child2WasElite;
    if (child2WasElite && io) {
    }
  }
  child1.mutate();
  if (parentId2 == -1) {
    EvolutionaryHistory.logLineageData(parentId1,child1);
  }
 else {
    EvolutionaryHistory.logLineageData(parentId1,parentId2,child1);
  }
  Score<T> s1=task.evaluate(child1);
  boolean child1WasElite=archive.add(s1);
  newEliteProduced=newEliteProduced || child1WasElite;
  if (child1WasElite && io) {
  }
  iterations++;
  if (newEliteProduced) {
    iterationsWithoutElite=0;
  }
 else {
    iterationsWithoutElite++;
  }
  System.out.println(iterations + "String_Node_Str" + iterationsWithoutElite);
}