All Versions
162
Latest Version
Avg Release Cycle
22 days
Latest Release
24 days ago

Changelog History
Page 1

  • v10.8.0 Changes

    August 27, 2021

    โœจ Enhancements

    • [RealmApp] ErrorCode.INVALID_EMAIL_PASSWORD has been added, and is now thrown instead of ErrorCode.SERVICE_UNKNOWN when loggin in with the wrong credentials.
    • RealmQuery.rawPredicate() now accepts a "BETWEEN" operator. Can be used like "age BETWEEN {20, 60}" which means "'Age' must be in the open interval ]20;60[".
    • ๐Ÿšš [RealmApp] Added User.remove() and User.removeAsync() that makes it possible to delete a user's Realm(s) from the device.

    ๐Ÿ›  Fixed

    • [RealmApp] Crash when integrating a schema from the server with a RealmAny property to a Realm File that already had that property defined locally. (Realm Core #4873, since 10.0.0)
    • [RealmApp] Refreshing the access token after 30 minutes would fail silently, causing infinite retries every 10 seconds. This would also block opening Realms when opening an app with an already logged in user. (Issue #7501, since 10.0.0)
    • [RealmApp] Clarified Javadoc for User.logOut() and User.logOutAsync() as these methods do not delete a user's Realm(s).
    • ๐Ÿ— Build error when having cross module model references (Issue #7474, since v10.4.0)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.3.0, commit: 321c79a67119db8177af13eefd5378586648ba73.
  • v10.7.1 Changes

    August 03, 2021

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • ๐Ÿ”€ [RealmApp] Crash when an object which is linked to by a RealmAny is invalidated (Sync only). (Realm Core #4828, since v10.6.0)
    • Object change listeners did not handle the object being deleted properly, which could result in assertion failures mentioning "m_table" in ObjectNotifier (Realm Core #4824, since v10.6.0).
    • Crash when delivering notifications over a nested hierarchy of lists of RealmAny that contain object references. (Realm Core #4803, since v10.6.0)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.2.0, commit: 583fc73040709383470797813096bee17802398e.
  • v10.7.0 Changes

    July 27, 2021

    ๐Ÿ’ฅ Breaking Changes

    • โœ‚ Removed automatic injection of repositories from Gradle plugin. From now on mavenCentral() repository needs to be added manually. (Issue #7365)

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • [RealmApp] Realm.getInstanceAsync does not wait for the initial remote data. (Issue #7517)
    • Build errors when doing incremental builds with Android Studio's Apply Changes...-actions. (Issue #7473)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.1.1, commit: 71db56caba8f8ef0398eedfffb82a908cb94ccec.
  • v10.6.1 Changes

    July 01, 2021

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixed

    • ๐Ÿ— [RealmApp] Configuring HTTP timeout through AppConfiguration.Builder.requestTimeout() did not work correctly. (Issue #7455)
    • ๐Ÿ”Š [RealmApp] A recursive loop that would eventually crash trying to refresh a user app token when it had been revoked by an admin. Now this situation logs the user out and reports an error. (Issue #7501)
    • En endless recursive loop that could cause a stack overflow when computing changes on a set of objects which contained cycles. (Realm Core Issue #4767)
    • Opening cached Realms no longer trigger android.os.strictmode.DiskReadViolation. (Issue #7500)
    • NullPointerException was thrown instead of IllegalStateException when calling Realm.executeTransaction() on a closed Realm. (Issue #7511, since 10.0.0)
    • RealmDictionary did not handle hash collisions correctly. (Realm Core issue #4776)
    • Crash after clearing a List or Set of RealmAny containing references to objects (Realm Core issue #4774)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.0.4, commit: 44304ce6104c4a9fc7e2359990c75be3b867b8fe.
  • v10.6.0 Changes

    June 15, 2021

    ๐Ÿš€ This release combines all changes from 10.6.0-BETA.1 and 10.6.0-BETA.2.

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”€ [RealmApp] Sync protocol version increased to 3. This version adds support for the new data types introduced in file format version 21.
    • โฌ†๏ธ Primary keys now have automatic indexes again. Indexes was removed in v10.0.0 because they were not needed, but it caused issues when upgrading from a pre v10 version of Realm, and in some cases resulted in large delays when upgrading the fileformat. (Issue #7426, since 10.0.0).
    • Queries no longer do nullability checks on non-nullable fields, so using null as an argument will not throw an IllegalArgumentException.
    • ๐Ÿ‘ป String query filters contains, beginsWith, endsWith, and like, now throw a null pointer exception on null values.
    • ๐Ÿ— The query builder no longer throw IllegalStateException but IllegalArgumentException.
    • ๐Ÿ‘ป The distinct query filter on unsupported fields no longer throws an exception when applied through when querying across relationships.
    • ๐Ÿ‘ป The distinct query filter no longer throws an exception when applied on non-existent fields.
    • โšก๏ธ RealmFieldType has been updated to account for the new types being added.

    โœจ Enhancements

    • โž• Added support for java.util.UUID as supported field in model classes.
    • โž• Added support for java.util.UUID as a primary key.
    • โž• Added support for RealmAny as supported field in model classes. A RealmAny is used to represent a polymorphic Realm value or Realm Object, is indexable but cannot be used as a primary key. See Javadoc for RealmAny.
    • โž• Added support for RealmDictionary as supported field in model classes. A RealmDictionary is a Map of strings to values - all types under the RealmAny umbrella can be used as values. See Javadoc for RealmDictionary and Javadoc for RealmMap. RealmDictionary is not yet supported by any of the Realm.insert and Realm.createFromJson methods - This support will be added in a future release.
    • โž• Added support for RealmSet as supported field in model classes. A RealmSet is a collection that implements the Java Set interface and contains no duplicate values - all types under the RealmAny umbrella can be used as values. See Javadoc for RealmSet. RealmSet is not yet supported by any of the Realm.insert and Realm.createFromJson methods - This support will be added in a future release.
    • ๐Ÿ‘ Allow UTF8 encoded characters in property names in string-based queries (#4467)
    • The error message when the initial steps of opening a Realm file fails is now more descriptive.
    • ๐Ÿ‘‰ Make conversion of Decimal128 to/from string work for numbers with more than 19 significant digits. (#4548)
    • โœ‚ Remove type coercion on bool and ObjectId when doing queries.
    • ๐Ÿ‘ Allow passing arguments into string-based query predicates.
    • ๐Ÿ‘ Queries across relationships now support the between operator.
    • Queries on numerical fields (byte, short, int, long, float, double, decimal128) now accept any numerical value as an argument.
    • isEmpty query filter can now be applied on RealmList and RealmObject fields.

    ๐Ÿ›  Fixed

    • Fix assertion failures such as "!m_notifier_skip_version.version" or "m_notifier_sg->get_version() + 1 == new_version.version" when performing writes inside change notification callbacks. Previously refreshing the Realm by beginning a write transaction would skip delivering notifications, leaving things in an inconsistent state. Notifications are now delivered recursively when needed instead. (Cocoa #7165).
    • ๐Ÿ›  Fixed name aliasing not working in sort/distinct clauses when doing string-based queries. (#4550, never before working).
    • Potential/unconfirmed fix for crashes associated with failure to memory map (low on memory, low on virtual address space). For example (#4514).
    • ๐Ÿ”€ Syncing large Decimal128 values will cause "Assertion failed: cx.w[1] == 0" (#4519, since v10.0.0)
    • Classes names "class_class_..." were not handled correctly when doing queries (#4480)
    • ๐Ÿ›  Fix collection notification reporting for modifications. This could be observed by receiving the wrong indices of modifications on sorted or distinct results, or notification blocks sometimes not being called when only modifications have occurred. (#4573 since v6).

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.0.3, commit de25ad9db783f931e7652d5c1431d5610b2ad67b.
  • v10.6.0-BETA.2 Changes

    June 14, 2021

    ๐Ÿ’ฅ Breaking Changes

    • `MapChangeSet.getDeletionsCount() has been replaced with MapChangeSet.getDeletions() that return the keys for entries that has been deleted instead of just the number of deleted entries.
    • โฌ†๏ธ Primary keys now have automatic indexes again. Indexes was removed in v10.0.0 because they were not needed, but it caused issues when upgrading from a pre v10 version of Realm, and in some cases resulted in large delays when upgrading the fileformat. (Issue #7426, since 10.0.0).

    โœจ Enhancements

    • ๐Ÿ‘ Allow insert and insertOrUpdate operations on RealmObject or RealmObject collections containing RealmDictionary or RealmSet fields.
    • โž• Added support for RealmDictionary in DynamicRealmObject with setDictionary(String fieldName, RealmDictionary<?> dictionary), getDictionary(String fieldName, Class<?> primitiveType), and getDictionary(String fieldName).
    • โž• Added support for RealmSet in DynamicRealmObject with setRealmSet(String fieldName, RealmSet<?> realmSet), getRealmSet(String fieldName, Class<?> primitiveType), and getRealmSet(String fieldName).

    ๐Ÿ›  Fixed

    • โœ‚ Removed wrong @Nullable annotation on RealmQuery.maxRealmAny().
    • ๐Ÿ›  Fixed RealmAny.getValueClass() returning the RealmObject proxy class instead of the model class on a RealmAny referencing a managed RealmObject.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v22. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.0.2, commit a30382469eb72c0cf1824b44e7062071c2f3f3a9.
    • โšก๏ธ Updated to Gradle 6.8.3.
  • v10.6.0-BETA.1 Changes

    May 17, 2021

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”€ [RealmApp] Sync protocol version increased to 3. This version adds support for the new data types introduced in file format version 21.
    • ๐Ÿ‘ File format version bumped to 21. In this version we support new basic datatypes UUID and RealmAny, as well as RealmSet and RealmMap collections with string-based keys (i.e. RealmDictionary).
    • Queries no longer do nullability checks on non-nullable fields, so using null as an argument will not throw an IllegalArgumentException.
    • ๐Ÿ‘ป String query filters contains, beginsWith, endsWith, and like, now throw a null pointer exception on null values.
    • ๐Ÿ— The query builder no longer throw IllegalStateException but IllegalArgumentException.
    • ๐Ÿ‘ป The distinct query filter on unsupported fields no longer throws an exception when applied through when querying across relationships.
    • ๐Ÿ‘ป The distinct query filter no longer throws an exception when applied on non-existent fields.

    โœจ Enhancements

    • โž• Added support for java.util.UUID as supported field in model classes.
    • โž• Added support for java.util.UUID as a primary key.
    • โž• Added support for RealmAny as supported field in model classes. A RealmAny is used to represent a polymorphic Realm value or Realm Object, is indexable but cannot be used as a primary key. See Javadoc for RealmAny.
    • โž• Added support for RealmDictionary as supported field in model classes. A RealmDictionary is a Map of strings to values - all types under the RealmAny umbrella can be used as values. See Javadoc for RealmDictionary and Javadoc for RealmMap. RealmDictionary is not yet supported by any of the Realm.insert and Realm.createFromJson methods - This support will be added in a future release.
    • โž• Added support for RealmSet as supported field in model classes. A RealmSet is a collection that implements the Java Set interface and contains no duplicate values - all types under the RealmAny umbrella can be used as values. See Javadoc for RealmSet. RealmSet is not yet supported by any of the Realm.insert and Realm.createFromJson methods - This support will be added in a future release.
    • ๐Ÿ‘ Allow UTF8 encoded characters in property names in string-based queries (#4467)
    • The error message when the initial steps of opening a Realm file fails is now more descriptive.
    • ๐Ÿ‘‰ Make conversion of Decimal128 to/from string work for numbers with more than 19 significant digits. (#4548)
    • โœ‚ Remove type coercion on bool and ObjectId when doing queries.
    • ๐Ÿ‘ Allow passing arguments into string-based query predicates.
    • ๐Ÿ‘ Queries across relationships now support the between operator.
    • Queries on numerical fields (byte, short, int, long, float, double, decimal128) now accept any numerical value as an argument.
    • isEmpty query filter can now be applied on RealmList and RealmObject fields.

    ๐Ÿ›  Fixed

    • Fix assertion failures such as "!m_notifier_skip_version.version" or "m_notifier_sg->get_version() + 1 == new_version.version" when performing writes inside change notification callbacks. Previously refreshing the Realm by beginning a write transaction would skip delivering notifications, leaving things in an inconsistent state. Notifications are now delivered recursively when needed instead. (Cocoa #7165).
    • ๐Ÿ›  Fixed name aliasing not working in sort/distinct clauses when doing string-based queries. (#4550, never before working).
    • Potential/unconfirmed fix for crashes associated with failure to memory map (low on memory, low on virtual address space). For example (#4514).
    • ๐Ÿ”€ Syncing large Decimal128 values will cause "Assertion failed: cx.w[1] == 0" (#4519, since v10.0.0)
    • Classes names "class_class_..." were not handled correctly when doing queries (#4480)
    • ๐Ÿ›  Fix collection notification reporting for modifications. This could be observed by receiving the wrong indices of modifications on sorted or distinct results, or notification blocks sometimes not being called when only modifications have occurred. (#4573 since v6).

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v21. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.6.y series.
    • Realm Studio 11.0.0-alpha.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 11.0.0-beta.4, commit: d50aef63a8aaf435e3afed82b589b47d8e1ab1ab.
  • v10.5.1 Changes

    June 14, 2021

    โœจ Enhancements

    • None.

    ๐Ÿ›  Fixes

    • ๐Ÿ”€ [RealmApp] Errors related to "uncaught exception in notifier thread: N5realm11KeyNotFoundE: No such object". This could happen in a sync'd app when a linked object was deleted by another client.
    • [RealmApp] Replacing a referenced embedded object could result in a "ERROR: ArrayInsert: Invalid" error. (Issue #7480)
    • ๐Ÿง Notifications now trigger correctly on Linux kernel 5.5 and above. So far this only impacted the preview emulator image for Android 12. (Issue#7321)
    • ๐Ÿ‘ Raw query predicates not supporting integer constants above 32 bits on a 32 bit platform.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v20. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.x.y series.
    • Realm Studio 10.0.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 10.8.1, commit 2a67b996faf9e0b5d47ac402c4d3926713f99418.
  • v10.5.0 Changes

    May 07, 2021

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ”€ [RealmApp] SyncSession.State.WaitingForAccessToken has been added. It represents the local access token not longer being valid, but is automatically being refreshed.

    โœจ Enhancements

    • โฌ†๏ธ We now make a backup of a Realm file prior to any file format upgrade. The backup is retained for 3 months. Backups from before a file format upgrade allows for better analysis of any upgrade failure. We also restore a backup, if a) an attempt is made to open a realm file whith a "future" file format and b) a backup file exist that fits the current file format. The backup file is placed next to the real Realm file and is named <fileName>.v<realmFileFormatVersion>.backup.realm.
    • The error message when the intial steps of opening a Realm file fails is now more descriptive.

    ๐Ÿ›  Fixes

    • [RealmApp] Client Reset errors now correctly forward the server error message. (Issue #7363, since 10.0.0)
    • [RealmApp] All AppExceptions now correctly report the error message through RuntimeException.getMessage() instead of only through AppException.getErrorMessage().
    • ๐Ÿ”€ [RealmApp] Proactively check the expiry time on the access token and refresh it before attempting to initiate a sync session. This prevents some error logs from appearing on the client such as: "ERROR: Connection[1]: Websocket: Expected HTTP response 101 Switching Protocols, but received: HTTP/1.1 401 Unauthorized" (RCORE-473, since v10.0.0).
    • ๐Ÿ›  Fix name aliasing not working in sort/distinct clauses of raw string predicates.
    • ๐Ÿ›  Fix collection notification reporting for modifications. This could be observed by receiving the wrong indices of modifications on sorted or distinct results, or notification sometimes not being called when only modifications have occured. (since v7.0.0).
    • ๐Ÿ‘‰ Make conversion of Decimal128 to/from string work for numbers with more than 19 significant digits. (#4548)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v20. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.x.y series.
    • Realm Studio 10.0.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 10.7.1, commit 5043c25e1d8f5971002e0fec85dea5ea3d7eb3d7.
  • v10.4.0 Changes

    March 26, 2021

    ๐Ÿš€ All releases from 10.4.0 and forward are now found on mavenCentral() instead of jcenter().

    ๐Ÿ‘ A minimal supported setup will therefore now look like this:

    allprojects {
        buildscript {
            repositories {
                mavenCentral()
            }
            dependencies {
                classpath "io.realm:realm-gradle-plugin:10.4.0"
            }
        }
    
        repositories {
            mavenCentral()
        }
    }
    

    ๐Ÿš€ SNAPSHOT releases have also been moved from http://oss.jfrog.org/artifactory/oss-snapshot-local ๐Ÿ‘€ to https://oss.sonatype.org/content/repositories/snapshots/. See here for more information.

    โœจ Enhancements

    • โž• Added support for the string-based Realm Query Language through RealmQuery.rawPredicate(...). This allows many new type of queries not previously supported by the typed query API. See the Javadoc on this method for further details. (Issue #6116)
    • ๐ŸŽ Performance of sorting on more than one property has been improved. Especially important if many elements match on the first property.

    ๐Ÿ›  Fixes

    • Calling max/min/sum/avg on a List may give wrong results (Realm Core #4252, since v10.0.0)
    • ๐Ÿ›  Fix an issue when using RealmResults.freeze() across threads with different transaction versions. Previously, copying the RealmsResults' native resource could result in a stale state or objects from a future version. (Realm Core #4254).
    • โฌ†๏ธ On 32-bit devices you may get exception with "No such object" when upgrading to v10.* (#7314, since v10.0.0)

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v20. Unsynced Realms will be upgraded from Realm Java 2.0 and later. Synced Realms can only be read and upgraded if created with Realm Java v10.0.0-BETA.1.
    • ๐Ÿš€ APIs are backwards compatible with all previous release of realm-java in the 10.x.y series.
    • Realm Studio 10.0.0 or above is required to open Realms created by this version.

    Internal

    • โšก๏ธ Updated to Realm Core 10.5.6, commit 92129110dece2cee59839e20be3a7067084a1196.
    • โšก๏ธ Updated to NDK 22.0.7026061.
    • โšก๏ธ Updated to ReLinker 1.4.3.