JarFile jf = (JarFile) cache.get (url);
JarFile jf; if (useCaches) { jf = (JarFile) cache.get (url);
    public static synchronized JarFile get (URL url) throws IOException    {      JarFile jf = (JarFile) cache.get (url);      if (jf != null)        return jf;                if ("file".equals (url.getProtocol()))            {              File f = new File (url.getFile());              jf = new JarFile (f, true, ZipFile.OPEN_READ);            }          else            {              URLConnection urlconn = url.openConnection();              InputStream is = urlconn.getInputStream();              byte[] buf = new byte [READBUFSIZE];              File f = File.createTempFile ("cache", "jar");              FileOutputStream fos = new FileOutputStream (f);               int len = 0;                            while ((len = is.read (buf)) != -1)                {                  fos.write (buf, 0, len);                }                            fos.close();              // Always verify the Manifest, open read only and delete when done.	  jf = new JarFile (f, true,			    ZipFile.OPEN_READ | ZipFile.OPEN_DELETE);            }                    cache.put (url, jf);            return jf;    }