code: @Override
      @SuppressWarnings("unused")
      public void parseURL(URLStreamHandlerSetter setter, URL url, String arg2, int arg3, int arg4) {
  
          // ------------------------------------------------------------------------------
          // NOTE: the java.net.URLStreamHandler expects that parseURL will be called
          // for the handler associated with a given URL. This associated handler is
          // actually an OSGi handler proxy. Thus we must tempoorarily alter the URL's
          // handler.
          //
          // See org.eclipse.osgi.framework.internal.protocol.URLStreamHandlerProxy
          // and java.net.URLStreamHandler for details.
          // ------------------------------------------------------------------------------
  
          URLStreamHandler currentHandler = null;
  
          try {
              currentHandler = (URLStreamHandler) _handlerField.get(url);
              _handlerField.set(url, getInstance());
              _parseURL.invoke(getInstance(), new Object[] { url, arg2, Integer.valueOf(arg3), Integer.valueOf(arg4) });
          } catch (Exception e) {
              FFDCFilter.processException(e, getClass().getName(), "parseURL", new Object[] { url, this, currentHandler });
          } finally {
              if (currentHandler != null) {
                  try {
                      _handlerField.set(url, currentHandler);
                  } catch (Exception e) {
                      FFDCFilter.processException(e, getClass().getName(), "parseURL", new Object[] { url, this, currentHandler });
                  }
              }
          }
      }
docs: /*
  @see org.osgi.service.url.URLStreamHandlerService#parseURL(org.osgi.service.url.URLStreamHandlerSetter,
  java.net.URL, java.lang.String, int, int)