Buggy code:
public class PoolConfigurationRWHandler { static final String [ ] NO_LOCATION = new String [ 0 ] ; public static final List < String > ATTRIBUTES = Arrays . asList ( Constants . MAX_POOL_SIZE . getName ( ) , Constants . MIN_POOL_SIZE . getName ( ) , Constants . INITIAL_POOL_SIZE . getName ( ) , Constants . BLOCKING_TIMEOUT_WAIT_MILLIS . getName ( ) , Constants . IDLETIMEOUTMINUTES . getName ( ) , Constants . BACKGROUNDVALIDATION . getName ( ) , Constants . BACKGROUNDVALIDATIONMILLIS . getName ( ) , Constants . POOL_PREFILL . getName ( ) , Constants . POOL_USE_STRICT_MIN . getName ( ) , Constants . POOL_FLUSH_STRATEGY . getName ( ) ) ; public static class PoolConfigurationReadHandler implements OperationStepHandler { public static final PoolConfigurationRWHandler . PoolConfigurationReadHandler INSTANCE = new PoolConfigurationRWHandler . PoolConfigurationReadHandler ( ) ; public void execute ( OperationContext context , ModelNode operation ) throws OperationFailedException { final String parameterName = operation . require ( NAME ) . asString ( ) ; <START_BUG> final ModelNode submodel = context . readResource ( EMPTY_ADDRESS , false ) . getModel ( ) ; <END_BUG> final ModelNode currentValue = ( submodel . hasDefined ( parameterName ) ) ? submodel . get ( parameterName ) . clone ( ) : new ModelNode ( ) ; context . getResult ( ) . set ( currentValue ) ; context . stepCompleted ( ) ; } } public abstract static class PoolConfigurationWriteHandler extends AbstractWriteAttributeHandler < List < PoolConfiguration > > { protected PoolConfigurationWriteHandler ( ) { } @ Override protected boolean applyUpdateToRuntime ( final OperationContext context , final ModelNode operation , final String parameterName , final ModelNode newValue , final ModelNode currentValue , final HandbackHolder < List < PoolConfiguration > > handbackHolder ) throws OperationFailedException { } @ Override protected void revertUpdateToRuntime ( OperationContext context , ModelNode operation , String parameterName , ModelNode valueToRestore , ModelNode valueToRevert , List < PoolConfiguration > handback ) throws OperationFailedException { } private void updatePoolConfigs ( List < PoolConfiguration > poolConfigs , String parameterName , ModelNode newValue ) { } protected abstract List < PoolConfiguration > getMatchingPoolConfigs ( String jndiName , ManagementRepository repository ) { } } public static class LocalAndXaDataSourcePoolConfigurationWriteHandler extends PoolConfigurationRWHandler . PoolConfigurationWriteHandler { public static final PoolConfigurationRWHandler . LocalAndXaDataSourcePoolConfigurationWriteHandler INSTANCE = new PoolConfigurationRWHandler . LocalAndXaDataSourcePoolConfigurationWriteHandler ( ) ; protected LocalAndXaDataSourcePoolConfigurationWriteHandler ( ) { } protected List < PoolConfiguration > getMatchingPoolConfigs ( String jndiName , ManagementRepository repository ) { } } public static class RaPoolConfigurationWriteHandler extends PoolConfigurationRWHandler . PoolConfigurationWriteHandler { public static final PoolConfigurationRWHandler . RaPoolConfigurationWriteHandler INSTANCE = new PoolConfigurationRWHandler . RaPoolConfigurationWriteHandler ( ) ; protected RaPoolConfigurationWriteHandler ( ) { } protected List < PoolConfiguration > getMatchingPoolConfigs ( String jndiName , ManagementRepository repository ) { } } }

Fix:
final ModelNode submodel = context . readModel ( EMPTY_ADDRESS ) ;