Index: luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java =================================================================== --- luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (revision 433551) +++ luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (working copy) @@ -222,28 +222,35 @@ JarFile openJarFile(String fileString, String key, boolean temp) throws IOException { - CacheEntry entry; - while ((entry = (CacheEntry) cacheQueue.poll()) != null) + + JarFile jar = null; + if(useCaches){ + CacheEntry entry; + while ((entry = (CacheEntry) cacheQueue.poll()) != null) jarCache.remove(entry.key); - entry = (CacheEntry) jarCache.get(key); - JarFile jar = null; - if (entry != null) + entry = (CacheEntry) jarCache.get(key); + if (entry != null) jar = (JarFile) entry.get(); - if (jar == null && fileString != null) { + if (jar == null && fileString != null) { int flags = ZipFile.OPEN_READ + (temp ? ZipFile.OPEN_DELETE : 0); jar = new JarFile(new File(Util.decode(fileString, false)), true, flags); jarCache.put(key, new CacheEntry(jar, key, cacheQueue)); - } else { + } else { SecurityManager security = System.getSecurityManager(); if (security != null) security.checkPermission(getPermission()); if (temp) lru.remove(new LRUKey(jar, 0)); - } + } + }else{ + int flags = ZipFile.OPEN_READ + (temp ? ZipFile.OPEN_DELETE : 0); + jar = new JarFile(new File(Util.decode(fileString, false)), true, flags); + } + if (temp) { - lru.add(new LRUKey(jar, new Date().getTime())); - if (lru.size() > Limit) - lru.remove(lru.first()); + lru.add(new LRUKey(jar, new Date().getTime())); + if (lru.size() > Limit) + lru.remove(lru.first()); } return jar; }