diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CachedKeyFileHolder.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CachedKeyFileHolder.kt index 97998f348d1a8ba6fc35b1a4d2dde5b53f0536a3..bd7a7158e751f49f5711566856405186c1617b80 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CachedKeyFileHolder.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/CachedKeyFileHolder.kt @@ -37,6 +37,7 @@ import kotlinx.coroutines.awaitAll import kotlinx.coroutines.withContext import timber.log.Timber import java.io.File +import java.io.IOException import java.util.Collections import java.util.Date import java.util.UUID @@ -121,7 +122,10 @@ object CachedKeyFileHolder { deferredQueries.awaitAll() Timber.v("${failedEntryCacheKeys.size} failed entries ") // For an error we clear the cache to try again - keyCache.clear(failedEntryCacheKeys) + if (failedEntryCacheKeys.isNotEmpty()) { + keyCache.clear(failedEntryCacheKeys) + throw IOException("failed to download all key files, at least one failing request.") + } keyCache.getFilesFromEntries() .also { it.forEach { file -> Timber.v("cached file:${file.path}") } } } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CachedKeyFileHolderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CachedKeyFileHolderTest.kt index 1d6e897947f32d9ffd2b948a821691e78cf1f184..607077c1a69ba68c85a333518508c4d6291eeb77 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CachedKeyFileHolderTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/CachedKeyFileHolderTest.kt @@ -38,7 +38,6 @@ class CachedKeyFileHolderTest { every { KeyCacheRepository.getDateRepository(any()) } returns keyCacheRepository mockkObject(CachedKeyFileHolder) coEvery { keyCacheRepository.deleteOutdatedEntries(any()) } just Runs - coEvery { keyCacheRepository.clear(any()) } just Runs } /** @@ -65,7 +64,6 @@ class CachedKeyFileHolderTest { keyCacheRepository.deleteOutdatedEntries(any()) CachedKeyFileHolder["getMissingDaysFromDiff"](arrayListOf<String>()) keyCacheRepository.getDates() - keyCacheRepository.clear(emptyList()) keyCacheRepository.getFilesFromEntries() } }