public File getCompressed(String filename, String hash, Downloader downloader) { File hashDir = hashDir(hash); File compressedFile = new File(hashDir, filename); File jarFile = new File(compressedFile.getParentFile(), getUnpackedFileName(compressedFile.getName())); if (!jarFile.exists()) { if (!compressedFile.exists()) { cacheMiss(compressedFile, hash, downloader); } File tempFile = newTempFile(); unpack200(compressedFile.toPath(), tempFile.toPath()); renameQuietly(tempFile, jarFile); } return jarFile; }