code: @Override
      public synchronized void unRegisterSynchronizationCallback(SynchronizationCallback sync) throws CallbackNotRegisteredException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(tc, "unRegisterSynchronizationCallback", sync);
  
          // We don't allow registration of null syncs
          if (sync == null || _syncLevel < 0) {
              final CallbackNotRegisteredException cnre = new CallbackNotRegisteredException();
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "unRegisterSynchronizationCallback", cnre);
              throw cnre;
          }
  
          // Get the current list
          final ArrayList currentSyncList = _syncLevels.get(_syncLevel);
  
          // If the current list is empty, this sync can't be registered
          if (currentSyncList == null || !currentSyncList.contains(sync)) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(tc, "unRegisterSynchronizationCallback", "Sync not registered");
              throw new CallbackNotRegisteredException();
          }
  
          // Clone a new level from the current and remove the last
          // occurence of the given sync from it
          final ArrayList newSyncList = new ArrayList(currentSyncList);
  
          final int pos = newSyncList.lastIndexOf(sync);
          newSyncList.remove(pos);
  
          // Make the new list current
          setLevel(newSyncList);
  
          // Garbage collect old levels which are no longer referenced
          garbageCollectUnusedLevels();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(tc, "unRegisterSynchronizationCallback");
      }
docs: Unregister a previously registered {@link com.ibm.websphere.jtaextensions.SynchronizationCallback SynchronizationCallback} object, <code>sync</code>. The object so
  unregistered will receive no further callbacks
  from transactions that subsequently complete.
  
  
  @param sync A previously registered {@link com.ibm.websphere.jtaextensions.SynchronizationCallback SynchronizationCallback} object.
  
  @exception CallbackNotRegisteredException Thrown if the specific <code>sync</code>
  is not registered with the transaction manager.