The JMX spec does not say what happens if the params or signature arguments to MBeanServer.createMBean or MBeanServer.invoke are null. In practice, the JDK treats a null parameter as equivalent to an empty array for createMBean and for invoke on a Standard MBean, but not for invoke on a Dynamic MBean. (The Dynamic MBean must include the logic to convert null into an empty array itself if it wants it.) The spec should say that these parameters can be null and that null is equivalent to an empty array. The implementation should make this replacement in the invoke method before calling DynamicMBean.invoke.