Buggy code:
class TransactionSubsystemAdd implements ModelAddOperationHandler , BootOperationHandler { static final TransactionSubsystemAdd INSTANCE = new TransactionSubsystemAdd ( ) ; private static final ServiceName INTERNAL_OBJECTSTORE_PATH = JBOSS_TXN_PATHS . append ( "object-store" ) ; private static final ServiceName INTERNAL_CORE_ENV_VAR_PATH = JBOSS_TXN_PATHS . append ( "core-var-dir" ) ; private static final Logger log = Logger . getLogger ( "org.jboss.as.transactions" ) ; private TransactionSubsystemAdd ( ) { } @ Override public OperationResult execute ( final OperationContext context , final ModelNode operation , final ResultHandler resultHandler ) { if ( context instanceof BootOperationContext ) { ( ( BootOperationContext ) ( context ) ) . addDeploymentProcessor ( INSTALL , INSTALL_TRANSACTION_BINDINGS , new TransactionJndiBindingProcessor ( ) ) ; } final ModelNode compensatingOperation = Util . getResourceRemoveOperation ( operation . require ( OP_ADDR ) ) ; final String nodeIdentifier = ( operation . get ( CORE_ENVIRONMENT ) . hasDefined ( NODE_IDENTIFIER ) ) ? operation . get ( CORE_ENVIRONMENT , NODE_IDENTIFIER ) . asString ( ) : "1" ; final ModelNode processId = operation . get ( CORE_ENVIRONMENT ) . require ( PROCESS_ID ) ; final String varDirPathRef = ( operation . get ( CORE_ENVIRONMENT ) . hasDefined ( RELATIVE_TO ) ) ? operation . get ( CORE_ENVIRONMENT ) . get ( RELATIVE_TO ) . asString ( ) : "jboss.server.data.dir" ; final String varDirPath = ( operation . get ( CORE_ENVIRONMENT ) . hasDefined ( PATH ) ) ? operation . get ( CORE_ENVIRONMENT ) . get ( PATH ) . asString ( ) : "var" ; final String recoveryBindingName = operation . get ( RECOVERY_ENVIRONMENT ) . require ( BINDING ) . asString ( ) ; final String recoveryStatusBindingName = operation . get ( RECOVERY_ENVIRONMENT ) . require ( STATUS_BINDING ) . asString ( ) ; final boolean recoveryListener = operation . get ( RECOVERY_ENVIRONMENT , RECOVERY_LISTENER ) . asBoolean ( false ) ; final boolean coordinatorEnableStatistics = operation . get ( COORDINATOR_ENVIRONMENT , ENABLE_STATISTICS ) . asBoolean ( false ) ; final boolean transactionStatusManagerEnable = operation . get ( COORDINATOR_ENVIRONMENT , ENABLE_TSM_STATUS ) . asBoolean ( false ) ; final ModelNode objectStore = operation . get ( OBJECT_STORE ) ; final String objectStorePathRef = ( objectStore . hasDefined ( RELATIVE_TO ) ) ? objectStore . get ( RELATIVE_TO ) . asString ( ) : "jboss.server.data.dir" ; final String objectStorePath = ( objectStore . hasDefined ( PATH ) ) ? objectStore . get ( PATH ) . asString ( ) : "tx-object-store" ; final int maxPorts = 10 ; final int coordinatorDefaultTimeout = operation . get ( COORDINATOR_ENVIRONMENT , DEFAULT_TIMEOUT ) . asInt ( 300 ) ; if ( TransactionSubsystemAdd . log . isDebugEnabled ( ) ) { TransactionSubsystemAdd . log . debugf ( "nodeIdentifier=%s\n" , nodeIdentifier ) ; TransactionSubsystemAdd . log . debugf ( "varDirPathRef=%s,<seq2seq4repair_space>varDirPath=%s\n" , varDirPathRef , varDirPath ) ; TransactionSubsystemAdd . log . debugf ( "objectStorePathRef=%s,<seq2seq4repair_space>objectStorePathRef=%s\n" , objectStorePathRef , objectStorePath ) ; TransactionSubsystemAdd . log . debugf ( "recoveryBindingName=%s,<seq2seq4repair_space>recoveryStatusBindingName=%s\n" , recoveryBindingName , recoveryStatusBindingName ) ; } final ModelNode subModel = context . getSubModel ( ) ; subModel . get ( CORE_ENVIRONMENT , PROCESS_ID ) . set ( operation . get ( CORE_ENVIRONMENT ) . require ( PROCESS_ID ) ) ; subModel . get ( CORE_ENVIRONMENT , NODE_IDENTIFIER ) . set ( operation . get ( CORE_ENVIRONMENT , NODE_IDENTIFIER ) ) ; subModel . get ( CORE_ENVIRONMENT , RELATIVE_TO ) . set ( operation . get ( CORE_ENVIRONMENT , RELATIVE_TO ) ) ; subModel . get ( CORE_ENVIRONMENT , PATH ) . set ( operation . get ( CORE_ENVIRONMENT , PATH ) ) ; subModel . get ( RECOVERY_ENVIRONMENT , BINDING ) . set ( operation . get ( RECOVERY_ENVIRONMENT ) . require ( BINDING ) ) ; subModel . get ( RECOVERY_ENVIRONMENT , STATUS_BINDING ) . set ( operation . get ( RECOVERY_ENVIRONMENT , STATUS_BINDING ) ) ; <START_BUG> subModel . get ( RECOVERY_ENVIRONMENT , STATUS_BINDING ) . set ( operation . get ( RECOVERY_ENVIRONMENT , STATUS_BINDING ) ) ; <END_BUG> subModel . get ( COORDINATOR_ENVIRONMENT , ENABLE_STATISTICS ) . set ( operation . get ( COORDINATOR_ENVIRONMENT , ENABLE_STATISTICS ) ) ; subModel . get ( COORDINATOR_ENVIRONMENT , ENABLE_TSM_STATUS ) . set ( operation . get ( COORDINATOR_ENVIRONMENT , ENABLE_TSM_STATUS ) ) ; subModel . get ( COORDINATOR_ENVIRONMENT , DEFAULT_TIMEOUT ) . set ( operation . get ( COORDINATOR_ENVIRONMENT , DEFAULT_TIMEOUT ) ) ; subModel . get ( OBJECT_STORE , RELATIVE_TO ) . set ( operation . get ( OBJECT_STORE , RELATIVE_TO ) ) ; subModel . get ( OBJECT_STORE , PATH ) . set ( operation . get ( OBJECT_STORE , PATH ) ) ; if ( ( context . getRuntimeContext ( ) ) != null ) { context . getRuntimeContext ( ) . setRuntimeTask ( new RuntimeTask ( ) { @ Override public void execute ( RuntimeTaskContext context ) throws OperationFailedException { final ServiceTarget target = context . getServiceTarget ( ) ; String socketBindingName = null ; final CoreEnvironmentService coreEnvironmentService = new CoreEnvironmentService ( nodeIdentifier , varDirPath ) ; if ( processId . hasDefined ( UUID . getName ( ) ) ) { UuidProcessId id = new UuidProcessId ( ) ; coreEnvironmentService . setProcessImplementation ( id ) ; } else if ( processId . hasDefined ( SOCKET . getName ( ) ) ) { coreEnvironmentService . setProcessImplementationClassName ( SOCKET . getClazz ( ) ) ; ModelNode socket = processId . get ( SOCKET . getName ( ) ) ; socketBindingName = socket . require ( BINDING ) . asString ( ) ; if ( socket . hasDefined ( SOCKET_PROCESS_ID_MAX_PORTS ) ) { int ports = socket . get ( SOCKET_PROCESS_ID_MAX_PORTS ) . asInt ( maxPorts ) ; coreEnvironmentService . setSocketProcessIdMaxPorts ( ports ) ; } } else { UuidProcessId id = new UuidProcessId ( ) ; coreEnvironmentService . setProcessImplementation ( id ) ; } ServiceBuilder < ? > coreEnvBuilder = target . addService ( JBOSS_TXN_CORE_ENVIRONMENT , coreEnvironmentService ) ; if ( socketBindingName != null ) { ServiceName bindingName = JBOSS_BINDING_NAME . append ( socketBindingName ) ;

Fix:
subModel . get ( RECOVERY_ENVIRONMENT , RECOVERY_LISTENER ) . set ( operation . get ( RECOVERY_ENVIRONMENT , RECOVERY_LISTENER ) ) ;