Class com.ustadmobile.libcache.UstadCacheJvmTest

15

tests

0

failures

0

ignored

3.458s

duration

100%

successful

Tests

Test Method name Duration Result
givenCompressableFileStored_whenRequestMadeWithoutAcceptEncoding_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm] givenCompressableFileStored_whenRequestMadeWithoutAcceptEncoding_thenWillBeRetrievedAsCacheHitAndBeCompressed 0.143s passed
givenCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm] givenCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndBeCompressed 0.119s passed
givenEmptyFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHit[jvm] givenEmptyFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHit 0.122s passed
givenEntryLocked_whenLockRemoved_thenWillBeMovedToCacheDir[jvm] givenEntryLocked_whenLockRemoved_thenWillBeMovedToCacheDir 0.177s passed
givenEntryNotLocked_whenLockAdded_thenWillBeMovedToPersistentDir[jvm] givenEntryNotLocked_whenLockAdded_thenWillBeMovedToPersistentDir 0.156s passed
givenEntryNotStored_whenRetrieved_thenWillReturnNull[jvm] givenEntryNotStored_whenRetrieved_thenWillReturnNull 0.070s passed
givenExtraHeaderSet_whenRetrieved_thenExtraHeaderIsAdded[jvm] givenExtraHeaderSet_whenRetrieved_thenExtraHeaderIsAdded 0.161s passed
givenFileCachedAndStored_whenPartialRequestMadeIfRangeNotMatched_thenWillReceiveFullResponse[jvm] givenFileCachedAndStored_whenPartialRequestMadeIfRangeNotMatched_thenWillReceiveFullResponse 0.179s passed
givenFileCachedAndStored_whenPartialRequestMade_thenWillReceivePartialData[jvm] givenFileCachedAndStored_whenPartialRequestMade_thenWillReceivePartialData 0.139s passed
givenFileCachedAndStored_whenRequestHasCacheValidationHeaders_thenShouldRespond304NotModified[jvm] givenFileCachedAndStored_whenRequestHasCacheValidationHeaders_thenShouldRespond304NotModified 1.068s passed
givenLockedEntryStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndSavedInPersistentPath[jvm] givenLockedEntryStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndSavedInPersistentPath 0.169s passed
givenNoVarySearchHeaderSet_whenRetrievedUsingMatchingUrl_thenIsCacheHit[jvm] givenNoVarySearchHeaderSet_whenRetrievedUsingMatchingUrl_thenIsCacheHit 0.625s passed
givenNonCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndNotCompressed[jvm] givenNonCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndNotCompressed 0.142s passed
givenResponseIsNotUpdated_whenStored_thenWillUpdateLastAccessAndValidationTime[jvm] givenResponseIsNotUpdated_whenStored_thenWillUpdateLastAccessAndValidationTime 0.100s passed
givenResponseIsUpdated_whenRetrieved_thenLatestResponseWillBeReturned[jvm] givenResponseIsUpdated_whenRetrieved_thenLatestResponseWillBeReturned 0.088s passed

Standard error

Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit1155975712587943389/junit4769152349795523616/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/blank.txt to /tmp/junit13199179274252449917/junit13810464020785529063/tmpWork/1.tmp (integrity=sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=)
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/blank.txt
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/blank.txt
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit11005941857577202298/junit2377376531071358959/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): moveToNewPath (http://www.server.com/file.png) /tmp/junit11005941857577202298/junit2377376531071358959/cache/87aae60c-231b-40b0-bf5a-f177ed217489 -> /tmp/junit11005941857577202298/junit2377376531071358959/persistent/87aae60c-231b-40b0-bf5a-f177ed217489
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit12836869636273078730/junit4748336488099002438/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:46 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit10064920717134206124/junit7733442356410268897/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): remove retention locks for #1788972287039http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): moveToNewPath (http://www.server.com/file.png) /tmp/junit10064920717134206124/junit7733442356410268897/persistent/dcfdc6b0-9a69-48c7-99de-e580a7078d49 -> /tmp/junit10064920717134206124/junit7733442356410268897/cache/dcfdc6b0-9a69-48c7-99de-e580a7078d49
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/ustadmobile-epub.js to /tmp/junit8806384596431578927/junit10742585517747819970/tmpWork/1.tmp (integrity=sha256-VSq6jc4LzKolTOOJz3m0EyOgcFjLiWDjIhq5d2YB7fM=)
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/ustadmobile-epub.js
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/ustadmobile-epub.js
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/ustadmobile-epub.js to /tmp/junit8535124966648529480/junit8642581280543428766/tmpWork/1.tmp (integrity=sha256-VSq6jc4LzKolTOOJz3m0EyOgcFjLiWDjIhq5d2YB7fM=)
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/ustadmobile-epub.js
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/ustadmobile-epub.js
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit12024924512625098201/junit3664281047779648707/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit8263450238546298276/junit8742082072765407140/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:47 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit9162592791178564714/junit13326034011471121375/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?ts=1
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?ts=1
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?ts=1
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?ts=1
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png?lang=en&lesson=2 to /tmp/junit9162592791178564714/junit13326034011471121375/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png?lang=en&lesson=2 to /tmp/junit9162592791178564714/junit13326034011471121375/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?lang=en&lesson=2&actor=janedoe&endpoint=server
Exception in thread "DefaultDispatcher-worker-1 @coroutine#15" androidx.sqlite.SQLiteException: Error code: 14
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.nativeOpen(Native Method)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.access$nativeOpen(BundledSQLiteDriver.jvmAndroid.kt:1)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:70)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:56)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked$lambda$1(RoomConnectionManager.kt:75)
	at androidx.room.concurrent.ExclusiveLock.withLock(ExclusiveLock.kt:50)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked(RoomConnectionManager.kt:68)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.open(RoomConnectionManager.kt:60)
	at androidx.room.coroutines.ConnectionPoolImpl._init_$lambda$5(ConnectionPoolImpl.kt:98)
	at androidx.room.coroutines.Pool.tryOpenNewConnectionLocked(ConnectionPoolImpl.kt:258)
	at androidx.room.coroutines.Pool.acquire(ConnectionPoolImpl.kt:243)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invokeSuspend(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:50)
	at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:149)
	at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
	at kotlinx.coroutines.TimeoutKt.withTimeout-KLykuaI(Timeout.kt:72)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.jvmNative.kt:52)
	at androidx.room.RoomDatabase.useConnection(RoomDatabase.jvmNative.kt:255)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at androidx.room.RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:1)
	at com.ustadmobile.libcache.UstadCacheImpl.commit(UstadCacheImpl.kt:914)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(15), "coroutine#15":StandaloneCoroutine{Cancelling}@3db37900, Dispatchers.IO]
Caused by: androidx.sqlite.SQLiteException: Error code: 14
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.nativeOpen(Native Method)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.access$nativeOpen(BundledSQLiteDriver.jvmAndroid.kt:1)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:70)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:56)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked$lambda$1(RoomConnectionManager.kt:75)
	at androidx.room.concurrent.ExclusiveLock.withLock(ExclusiveLock.kt:50)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked(RoomConnectionManager.kt:68)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.open(RoomConnectionManager.kt:60)
	at androidx.room.coroutines.ConnectionPoolImpl._init_$lambda$5(ConnectionPoolImpl.kt:98)
	at androidx.room.coroutines.Pool.tryOpenNewConnectionLocked(ConnectionPoolImpl.kt:258)
	at androidx.room.coroutines.Pool.acquire(ConnectionPoolImpl.kt:243)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invokeSuspend(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:50)
	at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:149)
	at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
	at kotlinx.coroutines.TimeoutKt.withTimeout-KLykuaI(Timeout.kt:72)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.jvmNative.kt:52)
	at androidx.room.RoomDatabase.useConnection(RoomDatabase.jvmNative.kt:255)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at androidx.room.RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:1)
	at com.ustadmobile.libcache.UstadCacheImpl.commit(UstadCacheImpl.kt:914)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit8692204412402977162/junit8127597320532806749/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Exception in thread "DefaultDispatcher-worker-4 @coroutine#29" androidx.sqlite.SQLiteException: Error code: 14
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.nativeOpen(Native Method)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.access$nativeOpen(BundledSQLiteDriver.jvmAndroid.kt:1)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:70)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:56)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked$lambda$1(RoomConnectionManager.kt:75)
	at androidx.room.concurrent.ExclusiveLock.withLock(ExclusiveLock.kt:50)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked(RoomConnectionManager.kt:68)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.open(RoomConnectionManager.kt:60)
	at androidx.room.coroutines.ConnectionPoolImpl._init_$lambda$5(ConnectionPoolImpl.kt:98)
	at androidx.room.coroutines.Pool.tryOpenNewConnectionLocked(ConnectionPoolImpl.kt:258)
	at androidx.room.coroutines.Pool.acquire(ConnectionPoolImpl.kt:243)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invokeSuspend(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:50)
	at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:149)
	at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
	at kotlinx.coroutines.TimeoutKt.withTimeout-KLykuaI(Timeout.kt:72)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.jvmNative.kt:52)
	at androidx.room.RoomDatabase.useConnection(RoomDatabase.jvmNative.kt:255)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at androidx.room.RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:1)
	at com.ustadmobile.libcache.UstadCacheImpl.commit(UstadCacheImpl.kt:914)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	at _COROUTINE._BOUNDARY._(CoroutineDebugging.kt:42)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(29), "coroutine#29":StandaloneCoroutine{Cancelling}@74480525, Dispatchers.IO]
Caused by: androidx.sqlite.SQLiteException: Error code: 14
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.nativeOpen(Native Method)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriverKt.access$nativeOpen(BundledSQLiteDriver.jvmAndroid.kt:1)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:70)
	at androidx.sqlite.driver.bundled.BundledSQLiteDriver.open(BundledSQLiteDriver.jvmAndroid.kt:56)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked$lambda$1(RoomConnectionManager.kt:75)
	at androidx.room.concurrent.ExclusiveLock.withLock(ExclusiveLock.kt:50)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.openLocked(RoomConnectionManager.kt:68)
	at androidx.room.BaseRoomConnectionManager$DriverWrapper.open(RoomConnectionManager.kt:60)
	at androidx.room.coroutines.ConnectionPoolImpl._init_$lambda$5(ConnectionPoolImpl.kt:98)
	at androidx.room.coroutines.Pool.tryOpenNewConnectionLocked(ConnectionPoolImpl.kt:258)
	at androidx.room.coroutines.Pool.acquire(ConnectionPoolImpl.kt:243)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invokeSuspend(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at androidx.room.coroutines.Pool$acquireWithTimeout$2.invoke(ConnectionPoolImpl.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:50)
	at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:149)
	at kotlinx.coroutines.TimeoutKt.withTimeout(Timeout.kt:44)
	at kotlinx.coroutines.TimeoutKt.withTimeout-KLykuaI(Timeout.kt:72)
	at androidx.room.coroutines.Pool.acquireWithTimeout-KLykuaI(ConnectionPoolImpl.kt:214)
	at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:143)
	at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.jvmNative.kt:52)
	at androidx.room.RoomDatabase.useConnection(RoomDatabase.jvmNative.kt:255)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invokeSuspend(RoomDatabase.kt:502)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt$useWriterConnection$2.invoke(RoomDatabase.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at androidx.room.RoomDatabaseKt__RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:501)
	at androidx.room.RoomDatabaseKt.useWriterConnection(RoomDatabase.kt:1)
	at com.ustadmobile.libcache.UstadCacheImpl.commit(UstadCacheImpl.kt:914)
	at com.ustadmobile.libcache.UstadCacheImpl$2.invokeSuspend(UstadCacheImpl.kt:338)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit2267297378582566583/junit8971700420369690020/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 09, 2026 8:44:48 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png