[download-cache] Fixed init logic to skip when cache file is missing (#10362)

There are several possible causes of the cache file to not exist, including user
 action. By skipping these couple steps during initialization when the file is
 missing, a renew action is allowed to start and the cache will rebuild and
 hopefully work as expected.

Simple fix for #10360
This commit is contained in:
Caleb Morris 2024-01-11 16:23:18 -07:00 committed by GitHub
parent b1067b942e
commit 7292dadd5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -103,12 +103,15 @@ class DownloadCache(
scope.launch { scope.launch {
rootDownloadsDirLock.withLock { rootDownloadsDirLock.withLock {
try { try {
if (diskCacheFile.exists()) {
val diskCache = diskCacheFile.inputStream().use { val diskCache = diskCacheFile.inputStream().use {
ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes()) ProtoBuf.decodeFromByteArray<RootDirectory>(it.readBytes())
} }
rootDownloadsDir = diskCache rootDownloadsDir = diskCache
lastRenew = System.currentTimeMillis() lastRenew = System.currentTimeMillis()
}
} catch (e: Throwable) { } catch (e: Throwable) {
logcat(LogPriority.ERROR, e) { "Failed to initialize disk cache" }
diskCacheFile.delete() diskCacheFile.delete()
} }
} }