code: @Override
    public Object invoke(final ELContext context, final Object base, final Object method,
        Class<?>[] paramTypes, final Object[] params) {
      if ((base == null) || (method == null)) {
        return null;
      }
  
      final MethodDescriptor[] methodDescriptors = getMethodDescriptors(context, base);
  
      if (methodDescriptors != null) {
        final Method m =
            findMethodOrThrow(method.toString(), paramTypes, params, false, methodDescriptors);
        paramTypes = m.getParameterTypes();
      }
  
      return super.invoke(context, base, method, paramTypes, params);
    }
docs: Invokes the method considering the base's BeanInfo class' MethodDescriptors. Resolves method
  overloads by looking at the MethodDescriptors first and only then the base's class itself,
  choosing the most specific candidate.