docs: public synchronized ChannelFactory getChannelFactoryInternal(Class<?> type, boolean isPersistent) throws ChannelFactoryException {
          if (type == null) {
              throw new InvalidChannelFactoryException("ChannelFactory type is null");
          }
  
          ChannelFactory factory = null;
          ChannelFactoryDataImpl cfd = null;
          try {
              // check to see if an instance of the channel factory already exists; if
              // not the contract of this method states that we will create it
              //
              cfd = channelFactories.get(type);
              if (cfd != null) {
                  factory = cfd.getChannelFactory();
              }
              if (null == factory) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Create channel factory; " + type);
                  }
                  // create a new channel factory reflectively & register
                  // it by its type
                  factory = (ChannelFactory) type.newInstance();
                  if (isPersistent) {
                      initChannelFactory(type, factory, null);
                  }
              }
          } catch (Exception exp) {
              FFDCFilter.processException(exp, getClass().getName() + ".getChannelFactoryInternal", "675", this, new Object[] { cfd });
              throw new InvalidChannelFactoryException("Can't create instance of channel factory " + type.getName() + " " + exp.getMessage());
          }
  
          return factory;
      }