Skip to content

11.4.0

Compare
Choose a tag to compare
@github-actions github-actions released this 16 Aug 15:47
· 81 commits to main since this release
da5af4a

11.4.0 (2023-08-16)

Enhancements

  • Added IQueryable.SubscribeAsync API as a shorthand for using SubscriptionSet.Add. It is a syntax sugar that roughly translates to:
    realm.Subscriptions.Update(() =>
    {
      realm.Subscriptions.Add(query);
    });
    
    await realm.Subscriptions.WaitForSynchronization();
    
    // This can now be expressed as
    await query.SubscribeAsync();
    It offers a parameter to control whether to wait every time for synchronization or just the first time a subscription is added, as well as cancellation token support. (PR #3403)
  • Added an optional cancellationToken argument to Session.WaitForDownloadAsync/WaitForUploadAsync. (PR #3403)
  • Added an optional cancellationToken argument to SubscriptionSet.WaitForSynchronization. (PR #3403)
  • Fixed a rare corruption of files on streaming format (often following compact, convert or copying to a new file). (Core 13.17.1)
  • Trying to search a full-text indexes created as a result of an additive schema change (i.e. applying the differences between the local schema and a synchronized realm's schema) could have resulted in an IllegalOperation error with the error code Column has no fulltext index. (Core 13.17.1)
  • Sync progress for DOWNLOAD messages from server state was updated wrongly. This may have resulted in an extra round-trip to the server. (Core 13.17.1)
  • Added option to use managed WebSockets (System.Net.WebSockets.ClientWebSocket) instead of Realm's built-in WebSocket client for Sync traffic. Managed WebSockets offer improved support for proxies and firewalls that require authentication. This feature is currently opt-in and can be enabled by setting AppConfiguration.UseManagedWebSockets to true. Managed WebSockets will become the default in a future version. (PR #3412).
  • Fixed an issue that would make realm.SyncSession garbage collected even when there are subscribers to realm.SyncSession.PropertyChanged.

Fixed

  • Fixed a race condition between canceling an async write transaction and closing the Realm file, which could result in an ObjectDisposedException : Safe handle has been closed being thrown. (PR #3400)
  • Fixed an issue where in the extremely rare case that an exception is thrown by Realm.RefreshAsync, that exception would have been ignored and false would have been returned. (PR #3400)
  • Fixed the nullability annotation of SubscriptionSet.Find to correctly indicate that null is returned if the subscription doesn't exist in the subscription set. (PR #3403)
  • Fixed an issue where executing Filter queries using remapped properties would only work with the native name rather than the managed one. Now both will work - e.g.:
    partial class MyModel : IRealmObject
    {
      [MapTo("Bar")]
      public int Foo { get; set; }
    }
    
    // Both of these are valid now
    realm.All<MyModel>().Filter("Foo > 5");
    realm.All<MyModel>().Filter("Bar > 5");
    (Issue #3149)

Compatibility

  • Realm Studio: 13.0.0 or later.

Internal

  • Using Core 13.17.1