docs: @Override
      public synchronized void registerSynchronizationCallbackForCurrentTran(SynchronizationCallback sync) throws NotSupportedException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "registerSynchronizationCallbackForCurrentTran", sync);
  
          if (sync == null) {
              final String msg = "SynchronizationCallback is null";
              final NullPointerException npe = new NullPointerException(msg);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "registerSynchronizationCallbackForCurrentTran", npe);
              throw npe;
          }
  
          final TransactionImpl tran = ((TranManagerSet) TransactionManagerFactory.getTransactionManager()).getTransactionImpl();
  
          if (tran == null) {
              final NotSupportedException nse = new NotSupportedException();
              if (tc.isEventEnabled()) {
                  Tr.event(tc, "No current transaction");
              }
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "registerSynchronizationCallbackForCurrentTran", nse);
              throw nse;
          }
  
          // Create Synchronization wrapper for the callback object
          SynchronizationCallbackWrapper syncCallbackWrapper = new SynchronizationCallbackWrapper(sync, (int) tran.getLocalTID(), tran.getTID());
  
          try {
              tran.registerSynchronization(syncCallbackWrapper, RegisteredSyncs.SYNC_TIER_OUTER); //d432276
          } catch (RollbackException re) {
              FFDCFilter.processException(re, "com.ibm.ws.jtaextensions.ExtendedJTATransactionImpl.registerSynchronizationCallbackForCurrentTran", "325", this);
              final NotSupportedException nse = new NotSupportedException();
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "registerSynchronizationCallbackForCurrentTran", nse);
              throw nse;
          } catch (IllegalStateException ise) {
              FFDCFilter.processException(ise, "com.ibm.ws.jtaextensions.ExtendedJTATransactionImpl.registerSynchronizationCallbackForCurrentTran", "333", this);
              final NotSupportedException nse = new NotSupportedException();
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "registerSynchronizationCallbackForCurrentTran", nse);
              throw nse;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "registerSynchronizationCallbackForCurrentTran");
      }