Program: 12305
Project: 12305
Buggy source:
/** 
 * <p>print.cpp:488:print_condition_list
 * @param printer
 * @param conds
 * @param indent
 * @param internal
 */
public static void print_condition_list(Printer printer,Condition conds,int indent,boolean internal){
  if (conds == null)   return;
  LinkedList<Condition> conds_not_yet_printed=new LinkedList<Condition>();
  for (Condition c=conds; c != null; c=c.next) {
    conds_not_yet_printed.add(c);
  }
  boolean did_one_line_already=false;
  while (!conds_not_yet_printed.isEmpty()) {
    if (did_one_line_already) {
      printer.print("String_Node_Str").spaces(indent);
    }
 else {
      did_one_line_already=true;
    }
    final Condition c=conds_not_yet_printed.pop();
    final ConjunctiveNegationCondition ncc=c.asConjunctiveNegationCondition();
    if (ncc != null) {
      printer.print("String_Node_Str");
      print_condition_list(printer,ncc.top,indent + 2,internal);
      printer.print("String_Node_Str");
      continue;
    }
    ThreeFieldCondition tfc=c.asThreeFieldCondition();
    ByRef<Boolean> removed_goal_test=ByRef.create(false);
    ByRef<Boolean> removed_impasse_test=ByRef.create(false);
    Test id_test=Tests.copy_test_removing_goal_impasse_tests(tfc.id_test,removed_goal_test,removed_impasse_test);
    Test id_test_to_match=Tests.copy_of_equality_test_found_in_test(id_test);
    LinkedList<ThreeFieldCondition> conds_for_this_id=new LinkedList<ThreeFieldCondition>();
    conds_for_this_id.add(tfc);
    if (!internal) {
      Iterator<Condition> it=conds_not_yet_printed.iterator();
      while (it.hasNext()) {
        final Condition n=it.next();
        ThreeFieldCondition ntfc=n.asThreeFieldCondition();
        if (ntfc != null && Tests.tests_are_equal(id_test_to_match,ntfc.id_test)) {
          conds_for_this_id.add(ntfc);
          it.remove();
        }
      }
    }
    printer.print("String_Node_Str");
    if (removed_goal_test.value) {
      printer.print("String_Node_Str");
    }
    if (removed_impasse_test.value) {
      printer.print("String_Node_Str");
    }
    printer.print("String_Node_Str",id_test);
    while (!conds_for_this_id.isEmpty()) {
      final ThreeFieldCondition tc=conds_for_this_id.pop();
{
        final StringBuilder gs=new StringBuilder();
        gs.append("String_Node_Str");
        if (tc.asNegativeCondition() != null) {
          gs.append("String_Node_Str");
        }
        gs.append("String_Node_Str");
        gs.append(String.format("String_Node_Str",tc.attr_test));
        if (!Tests.isBlank(tc.value_test)) {
          gs.append(String.format("String_Node_Str",tc.value_test));
          if (tc.test_for_acceptable_preference) {
            gs.append("String_Node_Str");
          }
        }
        if (printer.getOutputColumn() + gs.length() >= printer.getColumnsPerLine()) {
          printer.print("String_Node_Str").spaces(indent + 6);
        }
        printer.print(gs.toString());
      }
    }
    printer.print("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * <p>print.cpp:488:print_condition_list
 * @param printer
 * @param conds
 * @param indent
 * @param internal
 */
public static void print_condition_list(Printer printer,Condition conds,int indent,boolean internal){
  if (conds == null)   return;
  LinkedList<Condition> conds_not_yet_printed=new LinkedList<Condition>();
  for (Condition c=conds; c != null; c=c.next) {
    conds_not_yet_printed.add(c);
  }
  boolean did_one_line_already=false;
  while (!conds_not_yet_printed.isEmpty()) {
    if (did_one_line_already) {
      printer.print("String_Node_Str").spaces(indent);
    }
 else {
      did_one_line_already=true;
    }
    final Condition c=conds_not_yet_printed.pop();
    final ConjunctiveNegationCondition ncc=c.asConjunctiveNegationCondition();
    if (ncc != null) {
      printer.print("String_Node_Str");
      print_condition_list(printer,ncc.top,indent + 2,internal);
      printer.print("String_Node_Str");
      continue;
    }
    ThreeFieldCondition tfc=c.asThreeFieldCondition();
    ByRef<Boolean> removed_goal_test=ByRef.create(false);
    ByRef<Boolean> removed_impasse_test=ByRef.create(false);
    Test id_test=Tests.copy_test_removing_goal_impasse_tests(tfc.id_test,removed_goal_test,removed_impasse_test);
    Test id_test_to_match=Tests.copy_of_equality_test_found_in_test(id_test);
    LinkedList<ThreeFieldCondition> conds_for_this_id=new LinkedList<ThreeFieldCondition>();
    conds_for_this_id.add(tfc);
    if (!internal) {
      Iterator<Condition> it=conds_not_yet_printed.iterator();
      while (it.hasNext()) {
        final Condition n=it.next();
        ThreeFieldCondition ntfc=n.asThreeFieldCondition();
        if (ntfc != null && Tests.tests_are_equal(id_test_to_match,ntfc.id_test,false)) {
          conds_for_this_id.add(ntfc);
          it.remove();
        }
      }
    }
    printer.print("String_Node_Str");
    if (removed_goal_test.value) {
      printer.print("String_Node_Str");
    }
    if (removed_impasse_test.value) {
      printer.print("String_Node_Str");
    }
    printer.print("String_Node_Str",id_test);
    while (!conds_for_this_id.isEmpty()) {
      final ThreeFieldCondition tc=conds_for_this_id.pop();
{
        final StringBuilder gs=new StringBuilder();
        gs.append("String_Node_Str");
        if (tc.asNegativeCondition() != null) {
          gs.append("String_Node_Str");
        }
        gs.append("String_Node_Str");
        gs.append(String.format("String_Node_Str",tc.attr_test));
        if (!Tests.isBlank(tc.value_test)) {
          gs.append(String.format("String_Node_Str",tc.value_test));
          if (tc.test_for_acceptable_preference) {
            gs.append("String_Node_Str");
          }
        }
        if (printer.getOutputColumn() + gs.length() >= printer.getColumnsPerLine()) {
          printer.print("String_Node_Str").spaces(indent + 6);
        }
        printer.print(gs.toString());
      }
    }
    printer.print("String_Node_Str");
  }
}