code: @Override
      public synchronized void removeGroupEventListener(ChainEventListener cel, String groupName) throws ChainGroupException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "removeGroupEventListener");
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "groupName=" + groupName);
              Tr.debug(tc, "Listener=" + cel);
          }
  
          // Find the chain group.
          ChainGroupDataImpl groupData = (ChainGroupDataImpl) chainGroups.get(groupName);
  
          // Verify the group is in the framework.
          if (null == groupData) {
              ChainGroupException e = new ChainGroupException("Unable to unregister listener for unknown group, " + groupName);
              FFDCFilter.processException(e, getClass().getName() + ".removeGroupEventListener", "3011", this, new Object[] { groupName });
              throw e;
          }
  
          groupData.removeChainEventListener(cel);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "removeGroupEventListener");
          }
      }
docs: /*
  @seecom.ibm.wsspi.channelfw.ChannelFramework#removeGroupEventListener(
  ChainEventListener, String)