All Versions
153
Latest Version
Avg Release Cycle
16 days
Latest Release
25 days ago

Changelog History
Page 3

  • v7.0.8 Changes

    October 01, 2020

    โœจ Enhancements

    • ๐ŸŽ Slightly improve performance of most operations which read data from the Realm file.

    ๐Ÿ›  Fixes

    • ๐Ÿ‘ป Making a query in an indexed property may give a "Key not found" exception. (.NET issue #2025, since 7.0.0)
    • Queries for null on non-nullable indexed integer properties could return wrong results if 0 entries should be found. (Since 7.0.0)
    • ๐Ÿ‘ป Rerunning an equals query on an indexed string column which previously had more than one match and now has one match would sometimes throw a "key not found" exception. (Cocoa issue #6536, Since 7.0.0)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • โฌ†๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Object Store commit: 8a68df3e9fa7743c13d927eb7fc330ed9bb06693.
    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.28.
    • โฌ†๏ธ Upgraded to Realm Core: 6.1.3.
  • v7.0.7 Changes

    September 25, 2020

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • When querying a class where object references are part of the condition, the application may crash if objects have recently been added to the target table. (Issue #7118, since v7.0.0)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • โฌ†๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Object Store commit: 37e86c2905bfd424c16fc5d7860a1298bfc0ffa2.
    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.25.
    • โฌ†๏ธ Upgraded to Realm Core: 6.1.1.
  • v7.0.6 Changes

    September 18, 2020

    โœจ Enhancements

    • ๐Ÿ‘ Better exception messaging for UTF encoding errors. (Issue #7093)

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixes concurrent modification exceptions in the schema when refreshing a Realm (Issue #6876)
    • ๐Ÿ‘ If you use encryption your application cound crash with a message like "Opening Realm files of format version 0 is not supported by this version of Realm". (#6889 among others, since v7.0.0)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 5.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Object Store commit: e29b5515df8b8adfe2454424b78878bb63879307.
    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.23.
    • โฌ†๏ธ Upgraded to Realm Core: 6.0.26.
  • v7.0.5 Changes

    September 09, 2020

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • โšก๏ธ If you have a Realm file growing towards 2Gb and have a model class with more than 16 properties, then you may get a "Key not found" exception when updating an object. (Realm JS issue #3194, since v7.0.0)
    • In cases where you have more than 32 properties in a model class, you may get a currrupted file resulting in various crashes (Issue #7057, since v7.0.0)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 5.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.22.
    • โฌ†๏ธ Upgraded to Realm Core: 6.0.25.
  • v7.0.4 Changes

    September 08, 2020

    โฌ‡๏ธ Note: Fileformat has been bumped from 10 to 11. This means that downgrading to an earlier version of Realm is not possible and Realm Studio 5.0.0 must be used to view Realm files.

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • In some cases a frozen Realm of the wrong version could be returned. (ObjectStore issue #1078)
    • โฌ†๏ธ Upgrading files with string primary keys would result in a file where it was not possible to find the objects by primary key. (Core issue #3893, since 7.0.0)
    • NullPointerException when calling toString on RealmObjects with a binary field containing null. (Issue #7084, since 7.0.0)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 5.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v11 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Object Store commit: 286d7cb2f10c41f89a2efb43b22938610ccad4cf.
    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.21.
    • โฌ†๏ธ Upgraded to Realm Core: 6.0.24.
  • v7.0.3 Changes

    September 01, 2020

    โœจ Enhancements

    • โž• Added Realm.getNumberOfActiveVersions(), which returns the current number of active versions maintained by the Realm file.

    ๐Ÿ›  Fixes

    • ๐Ÿ“Œ Creating a query inside a change listener could in some cases result in the version being pinned, which would either drastically increase filesize or cause RealmConfiguration.maxNumberOfActiveVersions() to trigger. (Issue #6977, since 7.0.0)
    • โฌ†๏ธ If you upgrade a Realm file where you have "" elements in a list of non-nullable strings, the upgrade would crash.
    • โฌ†๏ธ If an attempt to upgrade a Realm file has ended with a crash with "migrate_links" in the call stack, the Realm ended in a corrupt state where further upgrade was not possible. A remedy for this situation is now provided.

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 4.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Object Store commit: eef80f42e6ede2294eb60f048228012d9b7bc627.
    • โฌ†๏ธ Upgraded to Realm Sync: 5.0.19.
    • โฌ†๏ธ Upgraded to Realm Core: 6.0.22.
    • โฌ†๏ธ The upgrade logic for upgrading fileformats has changed so that progress is now recorded explicitly in a table. This makes the logic simpler and reduces the chance of errors. It will also make it easier to detect if a file has only been partially upgraded.
  • v7.0.2 Changes

    August 14, 2020

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • ๐Ÿ”€ [ObjectServer] Calling SyncManager.refreshConnections() did not correctly refresh connections in all cases, which could delay reconnects up to 5 minutes. (Issue #7003)
    • โฌ†๏ธ Upgrading the file format result did in some cases not work correctly. This could result in a number of crashes, e.g. FORMAT_UPGRADE_REQUIRED. (Issue #6889, since 7.0.0)
    • ๐Ÿ› Bug in memory mapping management. This bug could result in multiple different asserts as well as segfaults. In many cases stack backtraces would include members of the EncyptedFileMapping near the top - even if encryption was not used at all. In other cases asserts or crashes would be in methods reading an array header or array element. In all cases the application would terminate immediately. (Issue #3838, since 7.0.0)
    • Crash when retrieving null valued primitive fields from dynamic realm. (Issue #7025)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 4.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Realm Sync 5.0.15.
    • โฌ†๏ธ Upgraded to Realm Core 6.0.17.
  • v7.0.1 Changes

    July 01, 2020

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • โฌ†๏ธ Upgrading older Realm files with String indexes was very slow. (Issue #6875, since 7.0.0)
    • โฌ†๏ธ Aborting upgrading a Realm file could result in the file getting corrupted. (Isse #6866, since 7.0.0)
    • โฌ†๏ธ Automatic indexes on primary keys are now correctly stripped when upgrading the file as they are no longer needed. (Since 7.0.0)
    • NoSuchTable was thrown after comitting a transaction. (Issue #6947)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 4.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • โฌ†๏ธ Upgraded to Realm Sync 5.0.7.
    • โฌ†๏ธ Upgraded to Realm Core 6.0.8.
  • v7.0.0 Changes

    May 16, 2020

    ๐Ÿš€ NOTE: This version bumps the Realm file format to version 10. Files created with previous versions of Realm will be automatically upgraded. It is not possible to downgrade to version 9 or earlier. Only Studio 3.11 or later will be able to open the new file format. ๐Ÿš€ NOTE: This version bumps the Realm file format to version 10. Files created with previous versions of Realm will be automatically upgraded. It is not possible to downgrade to version 9 or earlier. Only Realm Studio 4 or later will be able to open the new file format.

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ— [ObjectServer] Removed deprecated method SyncConfiguration.Builder.partialRealm(). Use SyncConfiguration.Builder.fullSynchronization() instead.
    • ๐Ÿ”€ [ObjectServer] Removed deprecated methods SyncConfiguration.automatic() and SyncConfiguration.automatic(User, Uri). Use SyncUser.getDefaultConfiguration() and SyncUser.createConfiguration(Url).
    • ๐Ÿšš [ObjectServer] Removed deprecated method ErrorCode.fromInt(int).
    • ๐Ÿ”€ [ObjectServer] Removed deprecated method SyncCredentials.nickname(name) and SyncCredentials.nickname(name, isAdmin). Use SyncCredentials.usernamePassword(username, password) instead.
    • ๐Ÿ— [ObjectServer] Deprecated state SyncSession.State.ERROR has been removed. Use SyncConfiguration.Builder.errorHandler(ErrorHandler) instead.
    • ๐Ÿšš [ObjectServer] IncompatibleSyncedFileException is removed as it is no longer used.
    • ๐Ÿ”€ [ObjectServer] New error codes thrown by the underlying sync layers now have proper enum mappings in ErrorCode.java. A few other errors have been renamed in order to have consistent naming. (Issue #6387)
    • ๐Ÿ”€ RxJava Flowables and Observables are now subscribed to and unsubscribed to asynchronously on the thread holding the live Realm, instead of previously where this was done synchronously.
    • ๐Ÿ— All RxJava Flowables and Observables now return frozen objects instead of live objects. This can be configured using RealmConfiguration.Builder.rxFactory(new RealmObservableFactory(true|false)). By using frozen objects, it is possible to send RealmObjects across threads, which means that all RxJava operators should now be supported without the need to copy Realm data into unmanaged objects.
    • ๐Ÿ‘ MIPS is not supported anymore.
    • Realm now requires minSdkVersion 16. Up from 9.
    • ๐Ÿšš [ObjectServer] IncompatibleSyncedFileException is removed and no longer thrown.

    โœจ Enhancements

    • โž• Added Realm.freeze(), RealmObject.freeze(), RealmResults.freeze() and RealmList.freeze(). These methods will return a frozen version of the current Realm data. This data can be read from any thread without throwing an IllegalStateException, but will never change. All frozen Realms and data can be closed by calling Realm.close() on the frozen Realm, but fully closing all live Realms will also close the frozen ones. Frozen data can be queried as normal, but trying to mutate it in any way will throw an IllegalStateException. This includes all methods that attempt to refresh or add change listeners. (Issue #6590)
    • โž• Added Realm.isFrozen(), RealmObject.isFrozen(), RealmObject.isFrozen(RealmModel), RealmResults.isFrozen() and RealmList.isFrozen(), which returns whether or not the data is frozen.
    • โž• Added RealmConfiguration.Builder.maxNumberOfActiveVersions(long number). Setting this will cause Realm to throw an IllegalStateException if too many versions of the Realm data are live at the same time. Having too many versions can dramatically increase the filesize of the Realm.
    • Storing large binary blobs in Realm files no longer forces the file to be at least 8x the size of the largest blob.
    • โฌ‡๏ธ Reduce the size of transaction logs stored inside the Realm file, reducing file size growth from large transactions.
    • RealmResults.asJSON() is no longer @Beta
    • 0๏ธโƒฃ The default toString() for proxy objects now print the length of binary fields. (Issue #6767)

    ๐Ÿ›  Fixes

    • ๐Ÿ›  If a DynamicRealm and Realm was opened for the same file they would share transaction state by accident. The implication was that writes to a Realm would immediately show up in the DynamicRealm. This has been fixed, so now it is required to call refresh() on the other Realm or wait for normal change listeners to detect the change.

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • Realm Studio: 4.0.0 or later.
    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats from Realm Java 2.0 and later).
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 7.x.y series.

    Internal

    • OsSharedRealm.VersionID.hashCode() was not implemented correctly and included the memory location in the hashcode.
    • โฌ†๏ธ OKHttp was upgraded to 3.10.0 from 3.9.0.
    • โฌ†๏ธ The NDK has been upgraded from r10e to r21.
    • The compiler used for C++ code has changed from GCC to Clang.
    • โฌ†๏ธ OpenSSL used by Realms encryption layer has been upgraded from 1.0.2k to 1.1.1b.
    • โšก๏ธ Updated to Object Store commit: 820b74e2378f111991877d43068a95d2b7a2e404.
    • โšก๏ธ Updated to Realm Sync 5.0.3.
    • โšก๏ธ Updated to Realm Core 6.0.4.

    Credits

    • ๐Ÿ‘ Thanks to @joxon for better support for binary fields in proxy objects.
  • v6.1.0 Changes

    January 17, 2020

    โœจ Enhancements

    • ๐Ÿ”Œ The Realm Gradle plugin now applies kapt when used in Kotlin Multiplatform projects. Note, Realm Java still only works for the Android part of a Kotlin Multiplatform project. (Issue #6653)
    • The error message shown when no native code could be found for the device is now much more descriptive. This is particular helpful if an app is using App Bundle or APK Split and the resulting APK was side-loaded outside the Google Play Store. (Issue #6673)
    • RealmResults.asJson() now encode binary data as Base64 and null object links are reported as null instead of [].

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed using RealmList with a primitive type sometimes crashing with Destruction of mutex in use. (Issue #6689)
    • RealmObjectSchema.transform() would crash if one of the DynamicRealmObject provided are deleted from the Realm. (Issue #6657, since 0.86.0)
    • The Realm Transformer will no longer attempt to send anonymous metrics when Gradle is invoked with --offline. (Issue #6691)

    Compatibility

    • Realm Object Server: 3.23.1 or later.
    • โฌ†๏ธ File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 6.x.y series.

    Internal

    • โšก๏ธ Updated to ReLinker 1.4.0.
    • โšก๏ธ Updated to Object Store commit: 2a204063e1e1a366efbdd909fbea9effceb7d3c4.
    • โšก๏ธ Updated to Realm Sync 4.9.4.
    • โšก๏ธ Updated to Realm Core 5.23.8.

    Credits

    • ๐Ÿ‘ Thanks to @sellmair (Sebastian Sellmair) for improving Kotlin Multiplatform support.