[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.
10.6.0 (2021-06-15)
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.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps realm-gradle-plugin from 7.0.8 to 10.6.1.
Changelog
Sourced from realm-gradle-plugin's changelog.
... (truncated)
Commits
e0bf52a
Release 10.6.1a9c4494
Wrong exception when calling Realm.executeTransaction on a closed Realm (#7513)7ef8dbb
Update to Realm Core 11.0.4 (#7516)5670317
Fixed configuring HTTP timeouts (#7512)36715bb
Fix DiskReadViolation warning when opening cached Realms. (#7503)7ea676a
Better docs for Client Reset backup configuration (#7508)74f4a53
Release 10.6.0085a392
Merge pull request #7436 from realm/support-new-datatypes9eac763
Release 10.6.0-BETA.2702ed1f
Add support for deletion keys in Map changelisteners (#7497)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)