Buggy code:
class TestModelControllerService extends ModelTestModelControllerService { private final InjectedValue < ContentRepository > injectedContentRepository = new InjectedValue < ContentRepository > ( ) ; private final TestModelType type ; private final RunningModeControl runningModeControl ; private final PathManagerService pathManagerService ; private final ModelInitializer modelInitializer ; private final TestModelControllerService . DelegatingResourceDefinition rootResourceDefinition ; private final ControlledProcessState processState ; private final ExtensionRegistry extensionRegistry ; private volatile TestModelControllerService . Initializer initializer ; TestModelControllerService ( ProcessType processType , RunningModeControl runningModeControl , StringConfigurationPersister persister , boolean validateOps , TestModelType type , ModelInitializer modelInitializer , TestModelControllerService . DelegatingResourceDefinition rootResourceDefinition , ControlledProcessState processState , ExtensionRegistry extensionRegistry ) { } static TestModelControllerService create ( ProcessType processType , RunningModeControl runningModeControl , StringConfigurationPersister persister , boolean validateOps , TestModelType type , ModelInitializer modelInitializer , ExtensionRegistry extensionRegistry ) { } InjectedValue < ContentRepository > getContentRepositoryInjector ( ) { } @ Override public void start ( StartContext context ) throws StartException { } @ Override protected void initCoreModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } @ Override public void stop ( StopContext context ) { } private ServerEnvironment createStandaloneServerEnvironment ( ) { } private HostControllerEnvironment createHostControllerEnvironment ( ) { try { Map < String , String > props = new HashMap < String , String > ( ) ; File home = new File ( "target//jbossas" ) ; delete ( home ) ; home . mkdir ( ) ; props . put ( HOME_DIR , home . getAbsolutePath ( ) ) ; File domain = new File ( home , "domain" ) ; domain . mkdir ( ) ; props . put ( DOMAIN_BASE_DIR , domain . getAbsolutePath ( ) ) ; File configuration = new File ( domain , "configuration" ) ; configuration . mkdir ( ) ; props . put ( DOMAIN_CONFIG_DIR , configuration . getAbsolutePath ( ) ) ; boolean isRestart = false ; String modulePath = "" ; InetAddress processControllerAddress = InetAddress . getLocalHost ( ) ; Integer processControllerPort = 9999 ; InetAddress hostControllerAddress = InetAddress . getLocalHost ( ) ; Integer hostControllerPort = 1234 ; String defaultJVM = null ; String domainConfig = null ; String initialDomainConfig = null ; String hostConfig = null ; String initialHostConfig = null ; RunningMode initialRunningMode = runningModeControl . getRunningMode ( ) ; boolean backupDomainFiles = false ; boolean useCachedDc = false ; <START_BUG> ProductConfig productConfig = new ProductConfig ( null , "" ) ; <END_BUG> return new HostControllerEnvironment ( props , isRestart , modulePath , processControllerAddress , processControllerPort , hostControllerAddress , hostControllerPort , defaultJVM , domainConfig , initialDomainConfig , hostConfig , initialHostConfig , initialRunningMode , backupDomainFiles , useCachedDc , productConfig ) ; } catch ( UnknownHostException e ) { throw new RuntimeException ( e ) ; } } private LocalHostControllerInfoImpl createLocalHostControllerInfo ( HostControllerEnvironment env ) { } private HostFileRepository createHostFileRepository ( ) { } private DomainController createDomainController ( final HostControllerEnvironment env , final LocalHostControllerInfoImpl info ) { } private void delete ( File file ) { } private interface Initializer { void setRootResourceDefinitionDelegate ( ) { } void initCoreModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } } private class ServerInitializer implements TestModelControllerService . Initializer { final ExtensibleConfigurationPersister persister = new NullConfigurationPersister ( ) ; final ServerEnvironment environment = createStandaloneServerEnvironment ( ) ; final boolean parallelBoot = false ; final AbstractVaultReader vaultReader = null ; public void setRootResourceDefinitionDelegate ( ) { } @ Override public void initCoreModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } } private class HostInitializer implements TestModelControllerService . Initializer { final String hostName = "master" ; final HostControllerEnvironment env = createHostControllerEnvironment ( ) ; final LocalHostControllerInfoImpl info = createLocalHostControllerInfo ( env ) ; final IgnoredDomainResourceRegistry ignoredRegistry = new IgnoredDomainResourceRegistry ( info ) ; final HostControllerConfigurationPersister persister = new HostControllerConfigurationPersister ( env , info , Executors . newCachedThreadPool ( ) , extensionRegistry ) ; final HostFileRepository hostFileRepository = createHostFileRepository ( ) ; final DomainController domainController = createDomainController ( env , info ) ; @ Override public void setRootResourceDefinitionDelegate ( ) { } @ Override public void initCoreModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } } private class DomainInitializer implements TestModelControllerService . Initializer { @ Override public void setRootResourceDefinitionDelegate ( ) { } @ Override public void initCoreModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } } private static class DelegatingResourceDefinition extends ModelTestModelControllerService . DelegatingResourceDefinition { private final TestModelType type ; public DelegatingResourceDefinition ( TestModelType type ) { } @ Override public void registerOperations ( ManagementResourceRegistration resourceRegistration ) { } @ Override public void registerChildren ( ManagementResourceRegistration resourceRegistration ) { } @ Override public void registerAttributes ( ManagementResourceRegistration resourceRegistration ) { } } }

Fix:
ProductConfig productConfig = new ProductConfig ( null , "" , props ) ;