jpa/hibernate5_3/src/main/java/org/jboss/as/jpa/hibernate5/service/WildFlyCustomJtaPlatform.java
public static void setTransactionSynchronizationRegistry(TransactionSynchronizationRegistry tsr) {

        if ((Assert.checkNotNullParam("tsr", tsr)) != transactionSynchronizationRegistry) {
            synchronized (WildFlyCustomJtaPlatform.class) {
                if (tsr != transactionSynchronizationRegistry) {
                    transactionSynchronizationRegistry = tsr;
                }
            }
        }
    }
public static void setTransactionSynchronizationRegistry(TransactionSynchronizationRegistry tsr) {

        if ((Assert.checkNotNullParam("tsr", tsr)) != transactionSynchronizationRegistry) {
            synchronized (WildFlyCustomJtaPlatform.class) {
                if (tsr != transactionSynchronizationRegistry) {
                    transactionSynchronizationRegistry = tsr;
                }
            }
        }
    }
public static void setTransactionSynchronizationRegistry ( TransactionSynchronizationRegistry tsr ) { if ( ( Assert . checkNotNullParam ( "tsr" , tsr ) ) != transactionSynchronizationRegistry ) { synchronized ( WildFlyCustomJtaPlatform . class ) { if ( tsr != transactionSynchronizationRegistry ) { transactionSynchronizationRegistry = tsr ; } } } }
Hibernate native applications cannot know when the TransactionManager + TransactionSynchronizationRegistry
services are stopped but JPA container managed applications can and will call setTransactionSynchronizationRegistry
with the new (global) TransactionSynchronizationRegistry to use.

@param tsr
Hibernate native applications cannot know when the TransactionManager + TransactionSynchronizationRegistry services are stopped but JPA container managed applications can and will call setTransactionSynchronizationRegistry with the new ( global ) TransactionSynchronizationRegistry to use .