The "role" field in the descriptor in a ModelMBeanOperationInfo is considered optional by the Reference Implementation and by the TCK. We might also deduce that it is supposed to be optional from the fact that a default descriptor can conjure up an appropriate value for it. However, p99 of the JMX spec v1.2 says "It must have a descriptorType with the value operation and a role of operation, getter, or setter." It should delete the words starting with "and", and add a separate sentence saying, "If the role field is present, it must have the value operation, getter, or setter."