public static Object invokeZeroArgMethod(Object bean, String methodName)
    {
        Method method = getZeroArgMethod(bean.getClass(), methodName);

        // Ensure we can invoke even if method or class is not public
        method.setAccessible(true);

        Throwable cause = null;
        try
        {
            return method.invoke(bean);
        }
        catch(InvocationTargetException ite)
        {
            cause = ite.getCause();
        }
        catch(Exception e)
        {
            cause = e;
        }
        if(cause instanceof RuntimeException)
        {
            throw (RuntimeException) cause;
        }
        throw new RuntimeException(cause);
    }