Buggy code:
public class EJB3Extension implements Extension { public static final String SUBSYSTEM_NAME = "ejb3" ; public static final String NAMESPACE_1_0 = EJB3_1_0 . getUriString ( ) ; public static final String NAMESPACE_1_1 = EJB3_1_1 . getUriString ( ) ; public static final String NAMESPACE_1_2 = EJB3_1_2 . getUriString ( ) ; public static final String NAMESPACE_1_3 = EJB3_1_3 . getUriString ( ) ; public static final String NAMESPACE_1_4 = EJB3_1_4 . getUriString ( ) ; private static final int MANAGEMENT_API_MAJOR_VERSION = 1 ; private static final int MANAGEMENT_API_MINOR_VERSION = 1 ; private static final int MANAGEMENT_API_MICRO_VERSION = 0 ; private static final String RESOURCE_NAME = ( EJB3Extension . class . getPackage ( ) . getName ( ) ) + ".LocalDescriptions" ; public static ResourceDescriptionResolver getResourceDescriptionResolver ( final String keyPrefix ) { } @ Override public void initialize ( ExtensionContext context ) { final boolean registerRuntimeOnly = context . isRuntimeOnlyRegistrationValid ( ) ; final SubsystemRegistration subsystem = context . registerSubsystem ( EJB3Extension . SUBSYSTEM_NAME , EJB3Extension . MANAGEMENT_API_MAJOR_VERSION , EJB3Extension . MANAGEMENT_API_MINOR_VERSION , EJB3Extension . MANAGEMENT_API_MICRO_VERSION ) ; subsystem . registerXMLElementWriter ( INSTANCE ) ; final ManagementResourceRegistration subsystemRegistration = subsystem . registerSubsystemModel ( EJB3SubsystemRootResourceDefinition . INSTANCE ) ; <START_BUG> subsystemRegistration . registerOperationHandler ( DESCRIBE , GenericSubsystemDescribeHandler . INSTANCE , GenericSubsystemDescribeHandler . INSTANCE , false , PRIVATE ) ; <END_BUG> subsystemRegistration . registerSubModel ( EJB3RemoteResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( EJB3AsyncResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( StrictMaxPoolResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( CacheFactoryResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( FilePassivationStoreResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( ClusterPassivationStoreResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( TimerServiceResourceDefinition . INSTANCE ) ; subsystemRegistration . registerSubModel ( UnboundedQueueThreadPoolResourceDefinition . create ( THREAD_POOL , new EJB3Extension . EJB3ThreadFactoryResolver ( ) , BASE_THREAD_POOL_SERVICE_NAME , registerRuntimeOnly ) ) ; subsystemRegistration . registerSubModel ( EJB3IIOPResourceDefinition . INSTANCE ) ; if ( registerRuntimeOnly ) { ResourceDefinition deploymentsDef = new org . jboss . as . controller . SimpleResourceDefinition ( PathElement . pathElement ( SUBSYSTEM , EJB3Extension . SUBSYSTEM_NAME ) , EJB3Extension . getResourceDescriptionResolver ( "deployed" ) ) ; final ManagementResourceRegistration deploymentsRegistration = subsystem . registerDeploymentModel ( deploymentsDef ) ; deploymentsRegistration . registerSubModel ( EntityBeanResourceDefinition . INSTANCE ) ; deploymentsRegistration . registerSubModel ( MessageDrivenBeanResourceDefinition . INSTANCE ) ; deploymentsRegistration . registerSubModel ( SingletonBeanDeploymentResourceDefinition . INSTANCE ) ; deploymentsRegistration . registerSubModel ( StatelessSessionBeanDeploymentResourceDefinition . INSTANCE ) ; deploymentsRegistration . registerSubModel ( StatefulSessionBeanDeploymentResourceDefinition . INSTANCE ) ; } } @ Override public void initializeParsers ( ExtensionParsingContext context ) { } private static class EJB3ThreadFactoryResolver extends ThreadFactoryResolver . SimpleResolver { private EJB3ThreadFactoryResolver ( ) { } @ Override protected String getThreadGroupName ( String threadPoolName ) { } } }

Fix:
subsystemRegistration . registerOperationHandler ( DEFINITION , GenericSubsystemDescribeHandler . INSTANCE ) ;