docs: @Override
      public void removeDiscriminator(Discriminator d) throws DiscriminationProcessException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "removeDiscriminator: " + d);
          }
          if (status == STARTED) {
              DiscriminationProcessException e = new DiscriminationProcessException("Should not remove form DiscriminationGroup while started!");
              FFDCFilter.processException(e, getClass().getName() + ".removeDiscriminator", "401", this, new Object[] { d });
              throw e;
          }
          // remove it from the list
          if (!discAL.remove(d)) {
              NoSuchElementException e = new NoSuchElementException("Discriminator does not exist, " + d.getChannel().getName());
              FFDCFilter.processException(e, getClass().getName() + ".removeDiscriminator", "410", this, new Object[] { d });
              throw e;
          }
          this.changed = true;
          String chanName = d.getChannel().getName();
          if (channelList == null) {
              NoSuchElementException e = new NoSuchElementException("No Channel's exist, " + chanName);
              FFDCFilter.processException(e, getClass().getName() + ".removeDiscriminator", "422", this, new Object[] { d });
              throw e;
          }
          Channel[] oldList = channelList;
          channelList = new Channel[oldList.length - 1];
          for (int i = 0, j = 0; i < oldList.length; i++) {
              String tempName = oldList[i].getName();
              if (tempName != null && !(tempName.equals(chanName))) {
                  if (j >= oldList.length) {
                      NoSuchElementException e = new NoSuchElementException("Channel does not exist, " + d.getChannel().getName());
                      FFDCFilter.processException(e, getClass().getName() + ".removeDiscriminator", "440", this, new Object[] { d });
                      throw e;
                  }
                  channelList[j++] = oldList[i];
              } else if (chanName == null) {
                  DiscriminationProcessException e = new DiscriminationProcessException("Channel does not have a name associated with it, " + oldList[i]);
                  FFDCFilter.processException(e, getClass().getName() + ".removeDiscriminator", "454", this, new Object[] { oldList[i] });
                  throw e;
              }
          }
          // remove it from the node list
          removeDiscriminatorNode(d);
      }