From 948e24065fd000a5a48d83cf49de9d9c33fbee48 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 5 Aug 2022 20:33:45 +0200 Subject: [PATCH] Realm: fix realm instance close too soon --- .../sdk/internal/crypto/store/db/RealmCryptoStore.kt | 3 --- .../android/sdk/internal/database/RealmInstance.kt | 9 ++------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt index 10846fc63e..91b5171fe7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStore.kt @@ -172,9 +172,6 @@ internal class RealmCryptoStore @Inject constructor( override fun close() { // Ensure no async request will be run later olmAccount?.releaseAccount() - runBlocking { - realmInstance.close() - } } private fun updateCryptoMetadata(operation: (CryptoMetadataEntity) -> Unit) { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmInstance.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmInstance.kt index 3a937ecd7b..08d0235626 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmInstance.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmInstance.kt @@ -26,7 +26,6 @@ import kotlinx.coroutines.withContext import org.matrix.android.sdk.R import org.matrix.android.sdk.api.util.Optional import org.matrix.android.sdk.internal.database.pagedlist.RealmTiledDataSource -import timber.log.Timber internal fun interface RealmQueryBuilder { fun build(realm: TypedRealm): RealmQuery @@ -60,16 +59,12 @@ internal class RealmInstance( suspend fun open() { coroutineScope.launch { - realm.await() + getRealm() }.join() } suspend fun close() = withContext(NonCancellable) { - try { - realm.await().close() - } catch (failure: Throwable) { - Timber.e("Error whole closing realm. Instance was probably already closed.") - } + getRealm().close() } fun queryResults(