All Versions
166
Latest Version
Avg Release Cycle
24 days
Latest Release
113 days ago

Changelog History
Page 5

  • 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.
  • v6.0.2 Changes

    November 21, 2019

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • ๐Ÿ”€ [ObjectServer] SyncSession progress listeners now work correctly in combination with SyncConfiguration.waitForInitialRemoteData().
    • 0๏ธโƒฃ The @RealmModule annotation would be stripped on an empty class when using R8 resulting in apps crashing on startup with io.realm.DefaultRealmModule is not a RealmModule. Add @RealmModule to the class definition.. (#6449)

    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 Object Store commit: ad96a4c334b475dd67d50c1ca419e257d7a21e18.
    • โšก๏ธ Updated to Realm Sync v4.8.3.
  • v6.0.1 Changes

    November 11, 2019

    โฌ†๏ธ NOTE: Anyone using encrypted Realms are strongly advised to upgrade to this version.

    โœจ Enhancements

    • None

    ๐Ÿ›  Fixed

    • When using encrypted Realms a race condition could lead to the Realm ending up corrupted when the file increased in size. This could manifest as a wide array of different error messages. Most commonly seen has been "Fatal signal 11 (SIGSEGV) from Java_io_realm_internal_UncheckedRow_nativeGetString", "RealmFileException: Top ref outside file" and "Unable to open a realm at path. ACCESS_ERROR: Invalid mnemonic". (#6152, since 5.0.0)
    • ๐Ÿ–จ RealmResults.asJSON() now prints lists with primitive values directly instead of wrapping each value in an object with an !ARRAY_VALUE property.

    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 Realm Sync 4.7.12.
    • โšก๏ธ Updated to Realm Core 5.23.6.

    Credits

    • Thanks to Vladimir Konkov (@vladimirfx) for help with isolating (#6152).
  • v6.0.0 Changes

    October 01, 2019

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”€ [ObjectServer] The PermissionManager is no longer backed by Realms but instead a REST API. This means that the PermissionManager class has been removed and all methods have been moved to SyncUser. Some method names have been renamed slightly and return values for methods have changed from RealmResults<Permission> to List<Permission>. This should only have an impact if change listeners were used to listen for changes. In these cases, you must now manually retry the request.

    โœจ Enhancements

    None.

    ๐Ÿ›  Fixed

    None.

    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

    • [ObjectServer] The OKHttp client will now follow redirects from the Realm Object Server.
  • v5.15.2 Changes

    September 30, 2019

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • ๐Ÿ–จ null values were not printed correctly when using RealmResults.asJSON() (Realm Core Issue #3399)
    • ๐Ÿ”€ [ObjectServer] Queries with nullable Date's did not serialize correctly. Only relevant if using Query-based Synchronization. (Realm Core issue #3388)
    • ๐Ÿ›  [ObjectServer] Fixed crash with java.lang.IllegalStateException: The following changes cannot be made in additive-only schema mode when opening an old Realm created between Realm Java 5.10.0 and Realm Java 5.13.0. (Issue #6619, since 5.13.0).

    Compatibility

    • Realm Object Server: 3.21.0 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 5.x.y series.

    Internal

    • โšก๏ธ Updated to Object Store commit: 8416010e4be5e32ba552ff3fb29e500f3102d3db.
    • โšก๏ธ Updated to Realm Sync 4.7.8.
    • โšก๏ธ Updated to Realm Core 5.23.5.
    • โšก๏ธ Updated Docker image used on CI to Node 10.
  • v5.15.1 Changes

    September 09, 2019

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • ๐Ÿ— Projects with flatDirs repositories defined crashed the build with MissingPropertyException. (Issue #6610, since 5.15.0).

    Compatibility

    • Realm Object Server: 3.21.0 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 5.x.y series.

    Internal

    • None.
  • v5.15.0 Changes

    September 05, 2019

    โœจ Enhancements

    • ๐Ÿ— [ObjectServer] Added support for Client Resync for fully synchronized Realms which automatically will recover the local Realm in case the server is rolled back. This largely replaces the Client Reset mechanism. Can be configured using SyncConfiguration.Builder.clientResyncMode(). (Issue #6487)

    ๐Ÿ›  Fixed

    • โฌ†๏ธ Huawei devices reporting Permission denied when opening a Realm file after an app upgrade or factory reset. This does not automatically fix already existing Realm files. See this FAQ entry for more details. (Issue #5715)
    • โšก๏ธ Realm.copyToRealm() and Realm.insertOrUpdate() crashed on model classes if @LinkingObjects was used to target a field with a re-defined internal name in the parent class (e.g. by using @RealmField). (Issue #6581)

    Compatibility

    • Realm Object Server: 3.21.0 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 5.x.y series.

    Internal

    • ๐Ÿ”€ Implemented direct access to sync workers on Cloud, bypassing the Sync Proxy: the binding will override the sync session's url prefix if the token refresh response for a realm contains a sync worker path field.
    • โšก๏ธ Updated to Object Store commit: 9f19d79fde248ba37cef0bd52fe64984f9d71be0.
    • โšก๏ธ Updated to Realm Sync 4.7.4.
    • โšก๏ธ Updated to Realm Core 5.23.2.
  • v5.14.1 Changes

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • โšก๏ธ Realm.copyToRealm() and Realm.insertOrUpdate() crashed on model classes if @LinkingObjects was used to target a field with a re-defined internal name in the parent class (e.g. by using @RealmField). (Issue #6581)

    Compatibility

    • Realm Object Server: 3.21.0 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 5.x.y series.

    Internal

    • None.