Class com.ustadmobile.libcache.UstadCacheJvmTest

15

tests

0

failures

0

ignored

3.038s

duration

100%

successful

Tests

Test Method name Duration Result
givenCompressableFileStored_whenRequestMadeWithoutAcceptEncoding_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm] givenCompressableFileStored_whenRequestMadeWithoutAcceptEncoding_thenWillBeRetrievedAsCacheHitAndBeCompressed 0.125s passed
givenCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndBeCompressed[jvm] givenCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndBeCompressed 0.113s passed
givenEmptyFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHit[jvm] givenEmptyFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHit 0.132s passed
givenEntryLocked_whenLockRemoved_thenWillBeMovedToCacheDir[jvm] givenEntryLocked_whenLockRemoved_thenWillBeMovedToCacheDir 0.173s passed
givenEntryNotLocked_whenLockAdded_thenWillBeMovedToPersistentDir[jvm] givenEntryNotLocked_whenLockAdded_thenWillBeMovedToPersistentDir 0.158s passed
givenEntryNotStored_whenRetrieved_thenWillReturnNull[jvm] givenEntryNotStored_whenRetrieved_thenWillReturnNull 0.146s passed
givenExtraHeaderSet_whenRetrieved_thenExtraHeaderIsAdded[jvm] givenExtraHeaderSet_whenRetrieved_thenExtraHeaderIsAdded 0.143s passed
givenFileCachedAndStored_whenPartialRequestMadeIfRangeNotMatched_thenWillReceiveFullResponse[jvm] givenFileCachedAndStored_whenPartialRequestMadeIfRangeNotMatched_thenWillReceiveFullResponse 0.116s passed
givenFileCachedAndStored_whenPartialRequestMade_thenWillReceivePartialData[jvm] givenFileCachedAndStored_whenPartialRequestMade_thenWillReceivePartialData 0.124s passed
givenFileCachedAndStored_whenRequestHasCacheValidationHeaders_thenShouldRespond304NotModified[jvm] givenFileCachedAndStored_whenRequestHasCacheValidationHeaders_thenShouldRespond304NotModified 0.679s passed
givenLockedEntryStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndSavedInPersistentPath[jvm] givenLockedEntryStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndSavedInPersistentPath 0.132s passed
givenNoVarySearchHeaderSet_whenRetrievedUsingMatchingUrl_thenIsCacheHit[jvm] givenNoVarySearchHeaderSet_whenRetrievedUsingMatchingUrl_thenIsCacheHit 0.670s passed
givenNonCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndNotCompressed[jvm] givenNonCompressableFileStored_whenRequestMade_thenWillBeRetrievedAsCacheHitAndNotCompressed 0.137s passed
givenResponseIsNotUpdated_whenStored_thenWillUpdateLastAccessAndValidationTime[jvm] givenResponseIsNotUpdated_whenStored_thenWillUpdateLastAccessAndValidationTime 0.127s passed
givenResponseIsUpdated_whenRetrieved_thenLatestResponseWillBeReturned[jvm] givenResponseIsUpdated_whenRetrieved_thenLatestResponseWillBeReturned 0.063s passed

Standard error

Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit8149077721746303332/junit4101620230292991983/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:37 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/blank.txt to /tmp/junit3540132447585521281/junit15329976180042122108/tmpWork/1.tmp (integrity=sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=)
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/blank.txt
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/blank.txt
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit1738416240189241879/junit17119381137165103099/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): moveToNewPath (http://www.server.com/file.png) /tmp/junit1738416240189241879/junit17119381137165103099/cache/b63a62db-dd73-41cb-ac57-6af13bf20f1b -> /tmp/junit1738416240189241879/junit17119381137165103099/persistent/b63a62db-dd73-41cb-ac57-6af13bf20f1b
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit16302058332741253119/junit17085200633751842995/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit11080823117014163944/junit16362560491021933495/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): remove retention locks for #1789041878595http://www.server.com/file.png
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): moveToNewPath (http://www.server.com/file.png) /tmp/junit11080823117014163944/junit16362560491021933495/persistent/8811d080-b5ed-439b-9c12-0a22bb50e72c -> /tmp/junit11080823117014163944/junit16362560491021933495/cache/8811d080-b5ed-439b-9c12-0a22bb50e72c
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/ustadmobile-epub.js to /tmp/junit13844717340895413110/junit9346680089034783676/tmpWork/1.tmp (integrity=sha256-VSq6jc4LzKolTOOJz3m0EyOgcFjLiWDjIhq5d2YB7fM=)
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/ustadmobile-epub.js
Sep 10, 2026 4:04:38 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/ustadmobile-epub.js
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/ustadmobile-epub.js to /tmp/junit1613887867448154742/junit11711845072523875501/tmpWork/1.tmp (integrity=sha256-VSq6jc4LzKolTOOJz3m0EyOgcFjLiWDjIhq5d2YB7fM=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/ustadmobile-epub.js
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/ustadmobile-epub.js
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit14480935776158226472/junit8519590139687880505/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): add retention locks for http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit12742908043226577388/junit9224112369284304772/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit3436126582618450161/junit16594605248207691086/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?ts=1
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?ts=1
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png?ts=1
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png?ts=1
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 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/junit3436126582618450161/junit16594605248207691086/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 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 10, 2026 4:04:39 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 10, 2026 4:04:39 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 10, 2026 4:04:39 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 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:39 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/junit3436126582618450161/junit16594605248207691086/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:39 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:39 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 10, 2026 4:04:39 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 10, 2026 4:04:39 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 10, 2026 4:04:39 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-4 @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}@64637939, 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 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit10420765068620573053/junit17339899213430584695/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Exception in thread "DefaultDispatcher-worker-4 @coroutine#29" 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(29), "coroutine#29":StandaloneCoroutine{Cancelling}@345556be, 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 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): store request for 1 entries
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): copied request data for http://www.server.com/file.png to /tmp/junit15263258762496409275/junit4847637376529954869/tmpWork/1.tmp (integrity=sha256-hlfF4oGFRfane2XiRyLv02LtOJ4Va2UanpQV0im/K8I=)
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINEST: [VERBOSE] UstadCache - UstadCache(): cacheEntries created 1 entries
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
INFO: [INFO] UstadCache - UstadCache(): Retrieve http://www.server.com/file.png
Sep 10, 2026 4:04:40 PM io.github.aakira.napier.DebugAntilog performLog
FINE: [DEBUG] UstadCache - UstadCache(): FOUND http://www.server.com/file.png