public static Method getMostSpecificMethod(Method method, Class<?> targetClass) {
		Method specificMethod = null;
		if (method != null && isOverridable(method, targetClass) &&
				targetClass != null && !targetClass.equals(method.getDeclaringClass())) {
			try {
				specificMethod = ReflectionUtils.findMethod(targetClass, method.getName(), method.getParameterTypes());
			} catch (AccessControlException ex) {
				// security settings are disallowing reflective access; leave
				// 'specificMethod' null and fall back to 'method' below
			}
		}
		return (specificMethod != null ? specificMethod : method);
	}