Program: 18379
Project: 18379
Buggy source:
public void processRestrictions(){
  Scanner scanner=null;
  try {
    scanner=new Scanner(cnfFile);
  }
 catch (  FileNotFoundException e) {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str" + cnfFile);
    throw new RuntimeException();
  }
  scanner.useDelimiter("String_Node_Str");
  String cnf=scanner.next();
  scanner.close();
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  Pattern varsRegEx=Pattern.compile("String_Node_Str");
  Matcher matcher=varsRegEx.matcher(cnf);
  Set<String> variables=new HashSet<String>();
  Set<String> nonterminals=new HashSet<String>();
  if (!matcher.find()) {
    System.out.println("String_Node_Str");
    throw new RuntimeException();
  }
  String rootProduction=matcher.group();
  matcher.reset();
  while (matcher.find()) {
    variables.add(matcher.group());
  }
  for (  String var : variables) {
    String replacement;
    if (var.equals(rootProduction)) {
      replacement="String_Node_Str";
    }
 else     if (meta.getFeatures().contains(var)) {
      replacement="String_Node_Str" + var;
    }
 else {
      replacement="String_Node_Str" + var;
      nonterminals.add(replacement);
    }
    cnf=cnf.replaceAll(' ' + var + ' ',' ' + replacement + ' ');
  }
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  headerContents+="String_Node_Str";
  for (  String nt : nonterminals) {
    headerContents+="String_Node_Str" + nt + "String_Node_Str";
  }
  StringBuffer res=new StringBuffer();
  res.append("String_Node_Str");
  res.append("String_Node_Str");
  for (  String nt : nonterminals) {
    res.append("String_Node_Str" + nt + "String_Node_Str");
  }
  res.append("String_Node_Str");
  res.append("String_Node_Str");
  res.append("String_Node_Str" + cnf + "String_Node_Str");
  res.append("String_Node_Str");
  cFileContents+=res.toString();
}

Fixed version (ground truth):
public void processRestrictions(){
  Scanner scanner=null;
  try {
    scanner=new Scanner(cnfFile);
  }
 catch (  FileNotFoundException e) {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str" + cnfFile);
    throw new RuntimeException();
  }
  scanner.useDelimiter("String_Node_Str");
  String cnf=scanner.next();
  scanner.close();
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  Pattern varsRegEx=Pattern.compile("String_Node_Str");
  Matcher matcher=varsRegEx.matcher(cnf);
  Set<String> variables=new HashSet<String>();
  Set<String> nonterminals=new HashSet<String>();
  if (!matcher.find()) {
    System.out.println("String_Node_Str");
    throw new RuntimeException();
  }
  matcher.reset();
  while (matcher.find()) {
    variables.add(matcher.group());
  }
  for (  String var : variables) {
    String replacement;
    if (meta.getFeatures().contains(var)) {
      replacement="String_Node_Str" + var;
    }
 else {
      replacement="String_Node_Str" + var;
      nonterminals.add(replacement);
    }
    cnf=cnf.replaceAll(' ' + var + ' ',' ' + replacement + ' ');
  }
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  cnf=cnf.replaceAll("String_Node_Str","String_Node_Str");
  headerContents+="String_Node_Str";
  for (  String nt : nonterminals) {
    headerContents+="String_Node_Str" + nt + "String_Node_Str";
  }
  StringBuffer res=new StringBuffer();
  res.append("String_Node_Str");
  res.append("String_Node_Str");
  for (  String nt : nonterminals) {
    res.append("String_Node_Str" + nt + "String_Node_Str");
  }
  res.append("String_Node_Str");
  res.append("String_Node_Str");
  res.append("String_Node_Str" + cnf + "String_Node_Str");
  res.append("String_Node_Str");
  cFileContents+=res.toString();
}