Program: 59385
Project: 59385
Buggy source:
/** 
 * Return where clause expression for number properties by casting it to string before check its value. <p/> Querydsl Expr:  {@code entityPath.fieldName.stringValue() like ('%' + searchStr + '%')}Database operation:  {@code str(entity.fieldName) like ('%' + searchStr + '%')}<p/> Like operation is case sensitive.
 * @param entityPath Full path to entity and associations. For example:{@code Pet} , {@code Pet.owner}
 * @param fieldName Property name in the given entity path. For example:{@code weight} in {@code Pet} entity, {@code age} in{@code Pet.owner} entity.
 * @param searchStr the value to find, may be null
 * @return PredicateOperation
 */
public static <T,N extends java.lang.Number & java.lang.Comparable<?>>BooleanExpression createNumberExpression(PathBuilder<T> entityPath,String fieldName,Class<N> fieldType,TypeDescriptor descriptor,String searchStr,ConversionService conversionService){
  if (StringUtils.isEmpty(searchStr)) {
    return null;
  }
  NumberPath<N> numberExpression=entityPath.getNumber(fieldName,fieldType);
  BooleanExpression expression=null;
  try {
    Object number=conversionService.convert(searchStr,STRING_TYPE_DESCRIPTOR,descriptor);
    expression=numberExpression.stringValue().like("String_Node_Str".concat(number.toString()).concat("String_Node_Str"));
  }
 catch (  ConversionException e) {
    expression=numberExpression.stringValue().like("String_Node_Str".concat(searchStr).concat("String_Node_Str"));
  }
  return expression;
}

Fixed version (ground truth):
/** 
 * Return where clause expression for number properties by casting it to string before check its value. <p/> Querydsl Expr:  {@code entityPath.fieldName.stringValue() like ('%' + searchStr + '%')}Database operation:  {@code str(entity.fieldName) like ('%' + searchStr + '%')}<p/> Like operation is case sensitive.
 * @param entityPath Full path to entity and associations. For example:{@code Pet} , {@code Pet.owner}
 * @param fieldName Property name in the given entity path. For example:{@code weight} in {@code Pet} entity, {@code age} in{@code Pet.owner} entity.
 * @param searchStr the value to find, may be null
 * @return PredicateOperation
 */
public static <T,N extends java.lang.Number & java.lang.Comparable<?>>BooleanExpression createNumberExpression(PathBuilder<T> entityPath,String fieldName,Class<N> fieldType,TypeDescriptor descriptor,String searchStr,ConversionService conversionService){
  if (StringUtils.isEmpty(searchStr)) {
    return null;
  }
  NumberPath<N> numberExpression=entityPath.getNumber(fieldName,fieldType);
  BooleanExpression expression=null;
  try {
    Object number=conversionService.convert(searchStr,STRING_TYPE_DESCRIPTOR,descriptor);
    String toSearch=number.toString();
    if (number instanceof BigDecimal && ((BigDecimal)number).scale() > 1) {
      toSearch=StringUtils.stripEnd(toSearch,"String_Node_Str");
      if (StringUtils.endsWith(toSearch,"String_Node_Str")) {
        toSearch=toSearch.concat("String_Node_Str");
      }
    }
    expression=numberExpression.stringValue().like("String_Node_Str".concat(toSearch).concat("String_Node_Str"));
  }
 catch (  ConversionException e) {
    expression=numberExpression.stringValue().like("String_Node_Str".concat(searchStr).concat("String_Node_Str"));
  }
  return expression;
}