Buggy code:
public final class TransactionSubsystemAdd extends AbstractSubsystemAdd < TransactionsSubsystemElement > { private static final long serialVersionUID = 6904905763469774913L ; private static final String INTERNAL_OBJECTSTORE_PATH = "jboss.transactions.object.store.path" ; private String recoveryBindingName ; private String recoveryStatusBindingName ; private String nodeIdentifier = "1" ; private String bindingName ; private boolean coordinatorEnableStatistics ; private String objectStorePathRef = "jboss.server.data.dir" ; private String objectStorePath = "tx-object-store" ; private int maxPorts = 10 ; private int coordinatorDefaultTimeout = 300 ; protected TransactionSubsystemAdd ( ) { } @ Override protected < P > void applyUpdate ( final UpdateContext updateContext , final UpdateResultHandler < ? super Void , P > resultHandler , final P param ) { <START_BUG> final BatchBuilder builder = updateContext . getBatchBuilder ( ) ; <END_BUG> final XATerminatorService xaTerminatorService = new XATerminatorService ( ) ; builder . addService ( JBOSS_TXN_XA_TERMINATOR , xaTerminatorService ) . setInitialMode ( ACTIVE ) . install ( ) ; final TransactionManagerService transactionManagerService = new TransactionManagerService ( nodeIdentifier , maxPorts , coordinatorEnableStatistics , coordinatorDefaultTimeout ) ; builder . addService ( JBOSS_TXN_TRANSACTION_MANAGER , transactionManagerService ) . addDependency ( OPTIONAL , JBOSS . append ( "iiop" , "orb" ) , ORB . class , transactionManagerService . getOrbInjector ( ) ) . addDependency ( JBOSS_TXN_XA_TERMINATOR , JBossXATerminator . class , transactionManagerService . getXaTerminatorInjector ( ) ) . addDependency ( JBOSS_BINDING_NAME . append ( recoveryBindingName ) , SocketBinding . class , transactionManagerService . getRecoveryBindingInjector ( ) ) . addDependency ( JBOSS_BINDING_NAME . append ( recoveryStatusBindingName ) , SocketBinding . class , transactionManagerService . getStatusBindingInjector ( ) ) . addDependency ( JBOSS_BINDING_NAME . append ( bindingName ) , SocketBinding . class , transactionManagerService . getSocketProcessBindingInjector ( ) ) . addDependency ( AbstractPathService . pathNameOf ( TransactionSubsystemAdd . INTERNAL_OBJECTSTORE_PATH ) , String . class , transactionManagerService . getPathInjector ( ) ) . setInitialMode ( ACTIVE ) . install ( ) ; RelativePathService . addService ( TransactionSubsystemAdd . INTERNAL_OBJECTSTORE_PATH , objectStorePath , objectStorePathRef , builder ) ; } @ Override protected TransactionsSubsystemElement createSubsystemElement ( ) { } public String getRecoveryBindingName ( ) { } public void setRecoveryBindingName ( final String recoveryBindingName ) { } public String getRecoveryStatusBindingName ( ) { } public void setRecoveryStatusBindingName ( final String recoveryStatusBindingName ) { } public String getNodeIdentifier ( ) { } public void setNodeIdentifier ( final String nodeIdentifier ) { } public String getBindingName ( ) { } public void setBindingName ( final String bindingName ) { } public boolean isCoordinatorEnableStatistics ( ) { } public void setCoordinatorEnableStatistics ( final boolean coordinatorEnableStatistics ) { } public void setCoordinatorDefaultTimeout ( final int timeout ) { } public String getObjectStoreDirectory ( ) { } public String getObjectStorePathRef ( ) { } public void setObjectStorePathRef ( String objectStorePathRef ) { } public void setObjectStoreDirectory ( final String objectStoreDirectory ) { } public int getMaxPorts ( ) { } public void setMaxPorts ( final int maxPorts ) { } }

Fix:
final BatchBuilder builder = updateContext . getServiceTarget ( ) ;