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;
}