code: public final void removeChainEventListener(ChainEventListener listener) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "removeChainEventListener: " + listener);
          }
  
          if (null != listener) {
              // Remove the listener from the list monitored by this group.
              if (!getChainEventListeners().remove(listener)) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Listener " + listener + " was not found in list monitored by group " + getName());
                  }
              }
              // Remove the listener from each of the chains in this group.
              for (ChainData chain : getChains()) {
                  removeListenerFromChain(listener, chain);
              }
          }
      }
docs: Method removeChainEventListener. Removes a listener from the list
  of those being informed of chain events on this chain. The listener is also
  removed from each chain in the group unless the chain is in another group
  which is associated with the listener.
  
  @param listener