Program: 59384
Project: 59384
Buggy source:
/** 
 * Creates a WHERE clause by the intersection of the given search-arguments
 * @param entity Entity {@link PathBuilder}. It represents the entity for class generation and alias-usage for path generation. <p/> Example: To retrieve a   {@code Customer} with the first name 'Bob'entity must be a  {@link PathBuilder} created for {@code Customer}class and searchArgs must contain the entry  {@code 'firstName':'Bob'}
 * @param searchArgs Search arguments to be used to create the WHERE clause.It can contain  {@code _operator_} entries for each field that wantto use its own operator. By default  {@code EQUALS} operator isused. <p/> Operator entry example:  {@code _operator_weight = LT} theexpression for  {@code weight} field will do a less-than valuecomparison
 * @return the WHERE clause
 */
public static <T>BooleanBuilder createPredicateByAnd(PathBuilder<T> entity,Map<String,Object> searchArgs){
  BooleanBuilder predicate=new BooleanBuilder();
  if (searchArgs == null || searchArgs.isEmpty()) {
    return predicate;
  }
  for (  Entry<String,Object> entry : searchArgs.entrySet()) {
    String key=entry.getKey();
    if (!key.startsWith(OPERATOR_PREFIX)) {
      Object valueToSearch=entry.getValue();
      String operator=(String)searchArgs.get(OPERATOR_PREFIX.concat(key));
      if (valueToSearch instanceof Collection) {
        @SuppressWarnings("String_Node_Str") Collection<Object> valueColl=(Collection<Object>)valueToSearch;
        for (        Object valueObj : valueColl) {
          predicate.and(createExpression(entity,key,valueObj,operator));
        }
      }
 else {
        predicate.and(createExpression(entity,key,valueToSearch,operator));
      }
    }
  }
  return predicate;
}

Fixed version (ground truth):
/** 
 * Creates a WHERE clause by the intersection of the given search-arguments
 * @param entity Entity {@link PathBuilder}. It represents the entity for class generation and alias-usage for path generation. <p/> Example: To retrieve a   {@code Customer} with the first name 'Bob'entity must be a  {@link PathBuilder} created for {@code Customer}class and searchArgs must contain the entry  {@code 'firstName':'Bob'}
 * @param searchArgs Search arguments to be used to create the WHERE clause.It can contain  {@code _operator_} entries for each field that wantto use its own operator. By default  {@code EQUALS} operator isused. <p/> Operator entry example:  {@code _operator_weight = LT} theexpression for  {@code weight} field will do a less-than valuecomparison
 * @return the WHERE clause
 */
public static <T>BooleanBuilder createPredicateByAnd(PathBuilder<T> entity,Map<String,Object> searchArgs,ConversionService conversionService){
  BooleanBuilder predicate=new BooleanBuilder();
  if (searchArgs == null || searchArgs.isEmpty()) {
    return predicate;
  }
  for (  Entry<String,Object> entry : searchArgs.entrySet()) {
    String key=entry.getKey();
    if (!key.startsWith(OPERATOR_PREFIX)) {
      Object valueToSearch=entry.getValue();
      String operator=(String)searchArgs.get(OPERATOR_PREFIX.concat(key));
      if (valueToSearch instanceof Collection) {
        @SuppressWarnings("String_Node_Str") Collection<Object> valueColl=(Collection<Object>)valueToSearch;
        for (        Object valueObj : valueColl) {
          predicate.and(createObjectExpression(entity,key,valueObj,operator,conversionService));
        }
      }
 else {
        predicate.and(createObjectExpression(entity,key,valueToSearch,operator,conversionService));
      }
    }
  }
  return predicate;
}