docs: public synchronized void removeProtocol(String productString, HttpUpgradeListener upgradeListener) {
          List<Holder> holders = handlers.get(productString);
          if (holders == null) {
              return;
          }
          Iterator<Holder> it = holders.iterator();
          while (it.hasNext()) {
              Holder holder = it.next();
              if (holder.listener == upgradeListener) {
                  holders.remove(holder);
                  break;
              }
          }
          if (holders.isEmpty()) {
              handlers.remove(productString);
          }
      }