else if (protocol.equals ("file")) {           handler = new gnu.gcj.protocol.file.Handler (); }
  private URLStreamHandler setURLStreamHandler(String protocol)  {    URLStreamHandler handler;    // See if a handler has been cached for this protocol.    if ((handler = (URLStreamHandler) handlers.get(protocol)) != null)      return handler;    // If a non-default factory has been set, use it to find the protocol.    if (factory != null)      handler = factory.createURLStreamHandler(protocol);    // Non-default factory may have returned null or a factory wasn't set.    // Use the default search algorithm to find a handler for this protocol.    if (handler == null)      {	// Get the list of packages to check and append our default handler	// to it, along with the JDK specified default as a last resort.	// Except in very unusual environments the JDK specified one shouldn't	// ever be needed (or available).	String propVal = System.getProperty("java.protocol.handler.pkgs");	propVal = (propVal == null) ? "" : (propVal + "|");	propVal = propVal + "gnu.gcj.protocol|sun.net.www.protocol";	StringTokenizer pkgPrefix = new StringTokenizer(propVal, "|");	do	  {	    String facName = pkgPrefix.nextToken() + "." + protocol +				".Handler";	    try	      {		handler =		  (URLStreamHandler) Class.forName(facName).newInstance();	      }	    catch (Exception e)	      {		// Can't instantiate; handler still null, go on to next element.	      }	  } while ((handler == null ||		    ! (handler instanceof URLStreamHandler)) &&		   pkgPrefix.hasMoreTokens());      }    // Update the hashtable with the new protocol handler.    if (handler != null)      if (handler instanceof URLStreamHandler)	handlers.put(protocol, handler);      else	handler = null;    return handler;  }