humble-video-noarch/src/main/java/io/humble/video/customio/HumbleIO.java
public IURLProtocolHandler getHandler(String protocol, String url, int flags)
  {
    // Note: We need to remove any protocol markers from the url
    String streamName = URLProtocolManager.getResourceFromURL(url);

    RegistrationInformation tuple = mURLs.get(streamName);
    if (tuple != null)
    {
      IURLProtocolHandler handler = tuple.getHandler();
      if (tuple.isUnmappingOnOpen())
      {
        IURLProtocolHandler oldHandler = unmapIO(tuple.getName());

        // the unmapIO is an atomic operation
        if (handler != null && !handler.equals(oldHandler))
        {
          // someone already unmapped this stream
          log.error("stream {} already unmapped; it was likely already opened",

          tuple.getName());
          return null;
        }
      }
      return handler;
    }
    return null;
  }
public IURLProtocolHandler getHandler(String protocol, String url, int flags)
  {
    // Note: We need to remove any protocol markers from the url
    String streamName = URLProtocolManager.getResourceFromURL(url);

    RegistrationInformation tuple = mURLs.get(streamName);
    if (tuple != null)
    {
      IURLProtocolHandler handler = tuple.getHandler();
      if (tuple.isUnmappingOnOpen())
      {
        IURLProtocolHandler oldHandler = unmapIO(tuple.getName());

        // the unmapIO is an atomic operation
        if (handler != null && !handler.equals(oldHandler))
        {
          // someone already unmapped this stream
          log.error("stream {} already unmapped; it was likely already opened",

          tuple.getName());
          return null;
        }
      }
      return handler;
    }
    return null;
  }
{@inheritDoc}