Program: 9726
Project: 9726
Buggy source:
/** 
 * A SPARQL CONSTRUCT query is created, to get a RDF graph for the given example with a specific recursion depth.
 * @param example The example resource for which a CONSTRUCT query is created.
 * @return The JENA ARQ Query object.
 */
private Query makeConstructQueryOptional(String resource,int limit,int offset){
  StringBuilder sb=new StringBuilder();
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(resource).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str").append(i - 1).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(resource).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str").append(i - 1).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str").append(i).append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  for (int i=0; i < recursionDepth; i++) {
    sb.append("String_Node_Str").append(i).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(limit).append("String_Node_Str");
  sb.append("String_Node_Str").append(offset);
  Query query=QueryFactory.create(sb.toString());
  return query;
}

Fixed version (ground truth):
/** 
 * A SPARQL CONSTRUCT query is created, to get a RDF graph for the given example with a specific recursion depth.
 * @param example The example resource for which a CONSTRUCT query is created.
 * @return The JENA ARQ Query object.
 */
private Query makeConstructQueryOptional(String resource,int limit,int offset,Set<String> predicateFilter){
  StringBuilder sb=new StringBuilder();
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(resource).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str").append(i - 1).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str");
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(resource).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str").append(i - 1).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str").append("String_Node_Str").append(i).append("String_Node_Str");
  }
  for (int i=1; i < recursionDepth; i++) {
    sb.append("String_Node_Str");
  }
  for (int i=0; i < recursionDepth; i++) {
    for (    String predicate : predicateFilter) {
      sb.append("String_Node_Str").append(i).append("String_Node_Str").append(predicate).append("String_Node_Str");
    }
  }
  sb.append("String_Node_Str");
  sb.append("String_Node_Str").append(limit).append("String_Node_Str");
  sb.append("String_Node_Str").append(offset);
  Query query=QueryFactory.create(sb.toString());
  return query;
}