Buggy code:
public class JMSQueueDefinition extends SimpleResourceDefinition { public static final PathElement PATH = PathElement . pathElement ( JMS_QUEUE ) ; public static final AttributeDefinition [ ] ATTRIBUTES = new AttributeDefinition [ ] { CommonAttributes . DESTINATION_ENTRIES , CommonAttributes . SELECTOR , CommonAttributes . DURABLE } ; public static final AttributeDefinition [ ] ATTRIBUTES_WITH_EXPRESSION_ALLOWED_IN_1_2_0 = new AttributeDefinition [ ] { CommonAttributes . DESTINATION_ENTRIES , CommonAttributes . SELECTOR , CommonAttributes . DURABLE } ; private static AttributeDefinition [ ] getDeploymentAttributes ( ) { } static final AttributeDefinition QUEUE_ADDRESS = create ( "queue-address" , STRING ) . setStorageRuntime ( ) . build ( ) ; static final AttributeDefinition DEAD_LETTER_ADDRESS = create ( "dead-letter-address" , STRING ) . setAllowNull ( true ) . setStorageRuntime ( ) . build ( ) ; static final AttributeDefinition EXPIRY_ADDRESS = create ( "expiry-address" , STRING ) . setAllowNull ( true ) . setStorageRuntime ( ) . build ( ) ; static final AttributeDefinition [ ] READONLY_ATTRIBUTES = new AttributeDefinition [ ] { JMSQueueDefinition . QUEUE_ADDRESS , JMSQueueDefinition . EXPIRY_ADDRESS , JMSQueueDefinition . DEAD_LETTER_ADDRESS , CommonAttributes . PAUSED , CommonAttributes . TEMPORARY } ; static final AttributeDefinition [ ] METRICS = new AttributeDefinition [ ] { CommonAttributes . MESSAGE_COUNT , CommonAttributes . DELIVERING_COUNT , CommonAttributes . MESSAGES_ADDED , CommonAttributes . SCHEDULED_COUNT , CommonAttributes . CONSUMER_COUNT } ; private final boolean registerRuntimeOnly ; private final boolean deployed ; private final List < AccessConstraintDefinition > accessConstraints ; public static JMSQueueDefinition newDeployedJMSQueueDefinition ( ) { } public JMSQueueDefinition ( final boolean registerRuntimeOnly ) { } private JMSQueueDefinition ( final boolean registerRuntimeOnly , final boolean deployed , final OperationStepHandler addHandler , final OperationStepHandler removeHandler ) { } @ Override public void registerAttributes ( ManagementResourceRegistration registry ) { super . registerAttributes ( registry ) ; AttributeDefinition [ ] attributes = ( deployed ) ? JMSQueueDefinition . getDeploymentAttributes ( ) : JMSQueueDefinition . ATTRIBUTES ; for ( AttributeDefinition attr : attributes ) { if ( ( registerRuntimeOnly ) || ( ! ( attr . getFlags ( ) . contains ( STORAGE_RUNTIME ) ) ) ) { if ( deployed ) { registry . registerReadOnlyAttribute ( attr , INSTANCE ) ; } else { <START_BUG> registry . registerReadWriteAttribute ( attr , null , JMSQueueConfigurationWriteHandler . INSTANCE ) ; <END_BUG> } } } if ( registerRuntimeOnly ) { for ( AttributeDefinition attr : JMSQueueDefinition . READONLY_ATTRIBUTES ) { registry . registerReadOnlyAttribute ( attr , JMSQueueReadAttributeHandler . INSTANCE ) ; } for ( AttributeDefinition metric : JMSQueueDefinition . METRICS ) { registry . registerMetric ( metric , JMSQueueReadAttributeHandler . INSTANCE ) ; } } } @ Override public void registerOperations ( ManagementResourceRegistration registry ) { } @ Override public List < AccessConstraintDefinition > getAccessConstraints ( ) { } }

Fix:
registry . registerReadOnlyAttribute ( attr , null ) ;