private static Method findPreferablyNonSyntheticMethod(String methodName, Class<?> clazz) {
        Method[] methods = clazz.getMethods();
        Method syntheticMethod = null;
        for (Method method : methods) {
            if (method.getName().equals(methodName)) {
                if (!method.isBridge() && !method.isSynthetic()) {
                    return method;
                } else {
                    syntheticMethod = method;
                }
            }
        }
        return syntheticMethod;
    }
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