private static PropertyDescriptor fixGenericDescriptor(Class<?> clazz, PropertyDescriptor descriptor) {
        Method readMethod = descriptor.getReadMethod();

        if (readMethod != null && (readMethod.isBridge() || readMethod.isSynthetic())) {
            String propertyName = descriptor.getName();
            //capitalize the first letter of the string;
            String baseName = Character.toUpperCase(propertyName.charAt(0)) + propertyName.substring(1);
            String setMethodName = "set" + baseName;
            String getMethodName = "get" + baseName;
            Method getMethod = findPreferablyNonSyntheticMethod(getMethodName, clazz);
            Method setMethod = findPreferablyNonSyntheticMethod(setMethodName, clazz);
            try {
                return new PropertyDescriptor(propertyName, getMethod, setMethod);
            } catch (IntrospectionException e) {
                //move on
            }
        }
        return descriptor;
    }
There are some nasty bugs for introspection with generics. This method addresses those nasty bugs and tries to find proper methods if available
http://bugs.sun.com/view_bug.do?bug_id=6788525
http://bugs.sun.com/view_bug.do?bug_id=6528714

@param clazz      type to work on
@param descriptor property pair (get/set) information
@return descriptor
core/src/main/java/com/github/dozermapper/core/util/ReflectionUtils.java