Program: 54183
Project: 54183
Buggy source:
/** 
 * 构建方法体实现
 */
private static String getMethodImplCode(Integer sequence,Class<?> sourceClass,Class<?> targetClass,boolean deepCopy,final Map<String,PropConverter<?,?>> propCvtMap) throws Exception {
  StringBuilder methodCode=new StringBuilder();
  methodCode.append("String_Node_Str").append(Object.class.getName()).append("String_Node_Str").append(Object.class.getName()).append("String_Node_Str");
  methodCode.append(sourceClass.getSimpleName()).append("String_Node_Str").append("String_Node_Str").append(sourceClass.getSimpleName()).append("String_Node_Str");
  methodCode.append(targetClass.getSimpleName()).append("String_Node_Str").append("String_Node_Str").append(targetClass.getSimpleName()).append("String_Node_Str");
  Field[] targetFields=ReflectionUtils.findFields(targetClass);
  for (  Field field : targetFields) {
    if (!Modifier.isStatic(field.getModifiers())) {
      String methodNameSuffix=capitalize(field.getName());
      Class<?> targetFieldClass=field.getType();
      Method setMethod=ReflectionUtils.findMethod(targetClass,"String_Node_Str" + methodNameSuffix,targetFieldClass);
      if (setMethod == null) {
        setMethod=ReflectionUtils.findMethod(targetClass,"String_Node_Str" + field.getName(),targetFieldClass);
        if (setMethod != null) {
          methodNameSuffix=field.getName();
        }
      }
      if (setMethod != null) {
        if (propCvtMap != null && propCvtMap.containsKey(field.getName())) {
          String converterName=field.getName() + "String_Node_Str";
          String converterType=PropConverter.class.getSimpleName();
          methodCode.append(converterType).append("String_Node_Str").append(converterName).append("String_Node_Str").append(converterType).append("String_Node_Str").append(BeanCopierFactory.class.getName()).append("String_Node_Str").append(sequence).append("String_Node_Str").append("String_Node_Str").append(field.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(targetFieldClass.getName()).append("String_Node_Str").append(converterName).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
          continue;
        }
        Method getMethod=ReflectionUtils.findMethod(sourceClass,"String_Node_Str" + methodNameSuffix);
        if (getMethod == null && (targetFieldClass == boolean.class || targetFieldClass == Boolean.class)) {
          getMethod=ReflectionUtils.findMethod(sourceClass,"String_Node_Str" + methodNameSuffix);
        }
        if (getMethod == null) {
          continue;
        }
        if (getMethod.getReturnType() == targetFieldClass) {
          if (!deepCopy) {
            methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
          }
 else {
            if (ClassHelper.isPrimitiveType(targetFieldClass) || ClassHelper.isPrimitiveWrapperType(targetFieldClass) || targetFieldClass == String.class) {
              methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
            }
 else {
              methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(targetFieldClass.getName()).append("String_Node_Str").append(BeanUtils.class.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
            }
          }
        }
 else         if (ClassHelper.isPrimitiveType(targetFieldClass) && ClassHelper.getPrimitiveTypeByWrapper(getMethod.getReturnType()) == targetFieldClass) {
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append(String.valueOf(ClassHelper.getPrimitiveDftValue(targetFieldClass))).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str");
        }
 else         if (ClassHelper.isPrimitiveWrapperType(targetFieldClass) && ClassHelper.getWrapperTypeByPrimitive(getMethod.getReturnType()) == targetFieldClass) {
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
        }
      }
    }
  }
  methodCode.append("String_Node_Str");
  return methodCode.toString();
}

Fixed version (ground truth):
/** 
 * 构建方法体实现
 */
private static String getMethodImplCode(Integer sequence,Class<?> sourceClass,Class<?> targetClass,boolean deepCopy,final Map<String,PropConverter<?,?>> propCvtMap) throws Exception {
  StringBuilder methodCode=new StringBuilder();
  methodCode.append("String_Node_Str").append(Object.class.getName()).append("String_Node_Str").append(Object.class.getName()).append("String_Node_Str");
  methodCode.append(sourceClass.getName()).append("String_Node_Str").append("String_Node_Str").append(sourceClass.getName()).append("String_Node_Str");
  methodCode.append(targetClass.getName()).append("String_Node_Str").append("String_Node_Str").append(targetClass.getName()).append("String_Node_Str");
  Field[] targetFields=ReflectionUtils.findFields(targetClass);
  for (  Field field : targetFields) {
    if (!Modifier.isStatic(field.getModifiers())) {
      String methodNameSuffix=capitalize(field.getName());
      Class<?> targetFieldClass=field.getType();
      Method setMethod=ReflectionUtils.findMethod(targetClass,"String_Node_Str" + methodNameSuffix,targetFieldClass);
      if (setMethod == null) {
        setMethod=ReflectionUtils.findMethod(targetClass,"String_Node_Str" + field.getName(),targetFieldClass);
        if (setMethod != null) {
          methodNameSuffix=field.getName();
        }
      }
      if (setMethod != null) {
        if (propCvtMap != null && propCvtMap.containsKey(field.getName())) {
          String converterName=field.getName() + "String_Node_Str";
          String converterType=PropConverter.class.getName();
          methodCode.append(converterType).append("String_Node_Str").append(converterName).append("String_Node_Str").append(converterType).append("String_Node_Str").append(BeanCopierFactory.class.getName()).append("String_Node_Str").append(sequence).append("String_Node_Str").append("String_Node_Str").append(field.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(targetFieldClass.getName()).append("String_Node_Str").append(converterName).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
          continue;
        }
        Method getMethod=ReflectionUtils.findMethod(sourceClass,"String_Node_Str" + methodNameSuffix);
        if (getMethod == null && (targetFieldClass == boolean.class || targetFieldClass == Boolean.class)) {
          getMethod=ReflectionUtils.findMethod(sourceClass,"String_Node_Str" + methodNameSuffix);
        }
        if (getMethod == null) {
          continue;
        }
        if (getMethod.getReturnType() == targetFieldClass) {
          if (!deepCopy) {
            methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
          }
 else {
            if (ClassHelper.isPrimitiveType(targetFieldClass) || ClassHelper.isPrimitiveWrapperType(targetFieldClass) || targetFieldClass == String.class) {
              methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
            }
 else {
              methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(targetFieldClass.getName()).append("String_Node_Str").append(BeanUtils.class.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str").append("String_Node_Str");
            }
          }
        }
 else         if (ClassHelper.isPrimitiveType(targetFieldClass) && ClassHelper.getPrimitiveTypeByWrapper(getMethod.getReturnType()) == targetFieldClass) {
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append(String.valueOf(ClassHelper.getPrimitiveDftValue(targetFieldClass))).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str");
          methodCode.append("String_Node_Str");
        }
 else         if (ClassHelper.isPrimitiveWrapperType(targetFieldClass) && ClassHelper.getWrapperTypeByPrimitive(getMethod.getReturnType()) == targetFieldClass) {
          methodCode.append("String_Node_Str").append(setMethod.getName()).append("String_Node_Str").append("String_Node_Str").append(getMethod.getName()).append("String_Node_Str").append("String_Node_Str");
        }
      }
    }
  }
  methodCode.append("String_Node_Str");
  return methodCode.toString();
}