code: public void registerProtocol (@Nonnull final IURLProtocol aProtocol)
    {
      ValueEnforcer.notNull (aProtocol, "Protocol");
  
      final String sProtocol = aProtocol.getProtocol ();
      m_aRWLock.writeLocked ( () -> {
        if (m_aProtocols.containsKey (sProtocol))
          throw new IllegalArgumentException ("Another handler for protocol '" + sProtocol + "' is already registered!");
        m_aProtocols.put (sProtocol, aProtocol);
      });
  
      if (LOGGER.isDebugEnabled ())
        LOGGER.debug ("Registered new custom URL protocol: " + aProtocol);
    }
docs: Registers a new protocol
  
  @param aProtocol
  The protocol to be registered. May not be <code>null</code>.
  @throws IllegalArgumentException
  If another handler for this protocol is already installed.