Program: 51774
Project: 51774
Buggy source:
private LinkedHashSet<UserWrapper> searchSingleCriteriaUserinfo(String fieldId,String op,String term) throws KeyNotFoundException, PersistenceException, ConnectionNotAvailableException {
  ArrayList<UserWrapper> users=getUsers();
  LinkedHashSet<UserWrapper> ret=new LinkedHashSet<UserWrapper>();
  for (  UserWrapper user : users) {
    String target;
    if (fieldId.equals("String_Node_Str")) {
      target=user.getGivenName();
    }
 else     if (fieldId.equals("String_Node_Str")) {
      target=user.getFamilyName();
    }
 else     if (fieldId.equals("String_Node_Str")) {
      target=user.getStudentId();
    }
 else {
      debug+="String_Node_Str";
      return ret;
    }
    debug+="String_Node_Str" + target + "String_Node_Str"+ term+ "String_Node_Str";
    if (op.equals("String_Node_Str")) {
      if (target.contains(term) || term.isEmpty()) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      if (target.equals(term)) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      if (!target.contains(term)) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left > right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left == right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left < right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else {
      debug+="String_Node_Str";
      return new LinkedHashSet<UserWrapper>();
    }
  }
  return ret;
}

Fixed version (ground truth):
private LinkedHashSet<UserWrapper> searchSingleCriteriaUserinfo(String fieldId,String op,String term) throws KeyNotFoundException, PersistenceException, ConnectionNotAvailableException {
  ArrayList<UserWrapper> users=getUsers();
  LinkedHashSet<UserWrapper> ret=new LinkedHashSet<UserWrapper>();
  for (  UserWrapper user : users) {
    String target=getValueFromUserInfoField(user,fieldId);
    if (target.isEmpty()) {
      debug+="String_Node_Str";
      return ret;
    }
    if (op.equals("String_Node_Str")) {
      if (target.contains(term) || term.isEmpty()) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      if (target.equals(term)) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      if (!target.contains(term)) {
        ret.add(user);
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left > right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left == right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else     if (op.equals("String_Node_Str")) {
      try {
        double right=Double.parseDouble(term);
        double left=Double.parseDouble(target);
        if (left < right) {
          ret.add(user);
        }
      }
 catch (      NumberFormatException e) {
      }
    }
 else {
      debug+="String_Node_Str";
      return new LinkedHashSet<UserWrapper>();
    }
  }
  return ret;
}