From 38dad4e482d72da43fda52c8096aaf425197121c Mon Sep 17 00:00:00 2001 From: emreyigit Date: Mon, 11 May 2026 15:14:13 +0300 Subject: [PATCH 1/3] Verify Public API Changes --- src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt | 3 ++- src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt | 6 +++++- src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt | 6 +++++- src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt | 6 +++++- .../PublicAPI/netstandard2.0/PublicAPI.Shipped.txt | 5 ++++- .../PublicAPI/netstandard2.1/PublicAPI.Shipped.txt | 5 ++++- 6 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt index 06c38c3c2f..031266ce83 100644 --- a/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt @@ -2654,4 +2654,5 @@ override Hazelcast.Models.ClusterVersion.GetHashCode() -> int ~override Hazelcast.Models.ClusterVersion.Equals(object obj) -> bool ~override Hazelcast.Models.ClusterVersion.ToString() -> string ~static Hazelcast.Models.ClusterVersion.Parse(string value) -> Hazelcast.Models.ClusterVersion -~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool \ No newline at end of file +~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task \ No newline at end of file diff --git a/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt index 4daf083139..966bf440be 100644 --- a/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt @@ -2711,4 +2711,8 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~virtual Hazelcast.Query.PredicateBuilder.IsLike(string pattern) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.IsNotEqualTo(object value) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.Matches(string regex) -> Hazelcast.Query.IPredicate -~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool \ No newline at end of file +~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task +override Hazelcast.Models.SingleVectorValues.GetHashCode() -> int +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.get -> System.IO.Pipelines.PipeScheduler +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.set -> void \ No newline at end of file diff --git a/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt index 4daf083139..966bf440be 100644 --- a/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt @@ -2711,4 +2711,8 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~virtual Hazelcast.Query.PredicateBuilder.IsLike(string pattern) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.IsNotEqualTo(object value) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.Matches(string regex) -> Hazelcast.Query.IPredicate -~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool \ No newline at end of file +~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task +override Hazelcast.Models.SingleVectorValues.GetHashCode() -> int +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.get -> System.IO.Pipelines.PipeScheduler +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.set -> void \ No newline at end of file diff --git a/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt index 4daf083139..966bf440be 100644 --- a/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt @@ -2711,4 +2711,8 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~virtual Hazelcast.Query.PredicateBuilder.IsLike(string pattern) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.IsNotEqualTo(object value) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.Matches(string regex) -> Hazelcast.Query.IPredicate -~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool \ No newline at end of file +~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task +override Hazelcast.Models.SingleVectorValues.GetHashCode() -> int +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.get -> System.IO.Pipelines.PipeScheduler +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.set -> void \ No newline at end of file diff --git a/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt index 1cd904f7b9..b1536ae2c9 100644 --- a/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -2712,4 +2712,7 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~virtual Hazelcast.Query.PredicateBuilder.IsNotEqualTo(object value) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.Matches(string regex) -> Hazelcast.Query.IPredicate ~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool - +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task +override Hazelcast.Models.SingleVectorValues.GetHashCode() -> int +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.get -> System.IO.Pipelines.PipeScheduler +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.set -> void diff --git a/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt index 7a20fbc77d..cb68ed811b 100644 --- a/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt @@ -2712,4 +2712,7 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~virtual Hazelcast.Query.PredicateBuilder.IsNotEqualTo(object value) -> Hazelcast.Query.IPredicate ~virtual Hazelcast.Query.PredicateBuilder.Matches(string regex) -> Hazelcast.Query.IPredicate ~override Hazelcast.Models.SingleVectorValues.Equals(object obj) -> bool - +~Hazelcast.DistributedObjects.IHMap.SetTTL(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task +override Hazelcast.Models.SingleVectorValues.GetHashCode() -> int +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.get -> System.IO.Pipelines.PipeScheduler +~Hazelcast.Networking.SocketOptions.PipeReaderScheduler.set -> void \ No newline at end of file From 2d0d6c374a99ee83a0745dc8fe616df67f59408d Mon Sep 17 00:00:00 2001 From: Emre Yigit Date: Mon, 11 May 2026 15:56:23 +0300 Subject: [PATCH 2/3] Verify Public APIs (UpdateTimeToLive is SetTTL) --- src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt | 1 - src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt | 1 - src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt | 1 - src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt | 1 - src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt | 1 - src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt | 1 - 6 files changed, 6 deletions(-) diff --git a/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt index 031266ce83..13b913393f 100644 --- a/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/PublicAPI.Shipped.txt @@ -243,7 +243,6 @@ Hazelcast.DistributedObjects.IHMap ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task Hazelcast.DistributedObjects.IHMap.UnsubscribeAsync(System.Guid subscriptionId) -> System.Threading.Tasks.ValueTask -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task Hazelcast.DistributedObjects.IHMapBase ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task diff --git a/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt index 966bf440be..f0ed431ef4 100644 --- a/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net10.0/PublicAPI.Shipped.txt @@ -1738,7 +1738,6 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~Hazelcast.DistributedObjects.IHMap.SubscribeAsync(System.Action> events, TKey key, Hazelcast.Query.IPredicate predicate, bool includeValues = true, object state = null) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsValueAsync(TValue value) -> System.Threading.Tasks.Task diff --git a/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt index 966bf440be..f0ed431ef4 100644 --- a/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net8.0/PublicAPI.Shipped.txt @@ -1738,7 +1738,6 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~Hazelcast.DistributedObjects.IHMap.SubscribeAsync(System.Action> events, TKey key, Hazelcast.Query.IPredicate predicate, bool includeValues = true, object state = null) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsValueAsync(TValue value) -> System.Threading.Tasks.Task diff --git a/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt index 966bf440be..f0ed431ef4 100644 --- a/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/net9.0/PublicAPI.Shipped.txt @@ -1738,7 +1738,6 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~Hazelcast.DistributedObjects.IHMap.SubscribeAsync(System.Action> events, TKey key, Hazelcast.Query.IPredicate predicate, bool includeValues = true, object state = null) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsValueAsync(TValue value) -> System.Threading.Tasks.Task diff --git a/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt index b1536ae2c9..f895409016 100644 --- a/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -1738,7 +1738,6 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~Hazelcast.DistributedObjects.IHMap.SubscribeAsync(System.Action> events, TKey key, Hazelcast.Query.IPredicate predicate, bool includeValues = true, object state = null) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsValueAsync(TValue value) -> System.Threading.Tasks.Task diff --git a/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt b/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt index cb68ed811b..ddf36f0edf 100644 --- a/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt +++ b/src/Hazelcast.Net/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt @@ -1738,7 +1738,6 @@ virtual Hazelcast.Serialization.Compact.CompactSerializerBase.TypeName.get -> ~Hazelcast.DistributedObjects.IHMap.SubscribeAsync(System.Action> events, TKey key, Hazelcast.Query.IPredicate predicate, bool includeValues = true, object state = null) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryPutAsync(TKey key, TValue value, System.TimeSpan timeToWait) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMap.TryRemoveAsync(TKey key, System.TimeSpan timeToWait = default(System.TimeSpan)) -> System.Threading.Tasks.Task -~Hazelcast.DistributedObjects.IHMap.UpdateTimeToLive(TKey key, System.TimeSpan timeToLive) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ClearAsync() -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsKeyAsync(TKey key) -> System.Threading.Tasks.Task ~Hazelcast.DistributedObjects.IHMapBase.ContainsValueAsync(TValue value) -> System.Threading.Tasks.Task From 8cce5924d81a6afec8c700ee0fba888210bc2919 Mon Sep 17 00:00:00 2001 From: Emre Yigit Date: Mon, 18 May 2026 13:03:02 +0300 Subject: [PATCH 3/3] Fix shoulddisposeasync --- .../DistributedObjects/ReliableTopicMessageExecutor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Hazelcast.Net/DistributedObjects/ReliableTopicMessageExecutor.cs b/src/Hazelcast.Net/DistributedObjects/ReliableTopicMessageExecutor.cs index e1fed0ff39..7ce8bd0fa5 100644 --- a/src/Hazelcast.Net/DistributedObjects/ReliableTopicMessageExecutor.cs +++ b/src/Hazelcast.Net/DistributedObjects/ReliableTopicMessageExecutor.cs @@ -213,7 +213,7 @@ private async Task ShouldDisposeAsync(Exception ex) else if (ex.GetType() == typeof(ArgumentOutOfRangeException) && _options.IsLossTolerant) { var old = _sequence; - _sequence = await _ringBuffer.GetTailSequenceAsync().CfAwait() + 1; + _sequence = await _ringBuffer.GetHeadSequenceAsync().CfAwait(); _logger.IfWarning()?.LogWarning("The reliable topic subscription on topic {TopicName} requested a too large sequence {Old}" + ". Jumping from old {Old} sequence to head sequence {Head}.", _ringBuffer.Name, old, old, _sequence);