From a1ce3f92835b487f3d5d8e1dc1c9c876e80ab64a Mon Sep 17 00:00:00 2001 From: Matt Bartholomew Date: Thu, 14 Nov 2024 14:22:26 -0500 Subject: [PATCH 1/2] change to ResetValidationTokenSource to guard against a disposed validationTokenSource --- .../Behaviors/Validators/ValidationBehavior.shared.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs b/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs index 4a22bb6e4e..771d0c4a3c 100644 --- a/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs +++ b/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs @@ -421,8 +421,15 @@ void UpdateStyle(in VisualElement view, bool isValid) void ResetValidationTokenSource(CancellationTokenSource? newTokenSource) { - validationTokenSource?.Cancel(); - validationTokenSource = newTokenSource; + try + { + validationTokenSource?.Cancel(); + } + catch (ObjectDisposedException) { } + finally + { + validationTokenSource = newTokenSource; + } } } From 215908dc00af9780aa4f02cc7a07229e7de2b7a6 Mon Sep 17 00:00:00 2001 From: Matt Bartholomew Date: Fri, 15 Nov 2024 09:33:13 -0500 Subject: [PATCH 2/2] add .Dispose() after cancel() --- .../Behaviors/Validators/ValidationBehavior.shared.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs b/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs index 771d0c4a3c..fe689b7104 100644 --- a/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs +++ b/src/CommunityToolkit.Maui/Behaviors/Validators/ValidationBehavior.shared.cs @@ -424,6 +424,7 @@ void ResetValidationTokenSource(CancellationTokenSource? newTokenSource) try { validationTokenSource?.Cancel(); + validationTokenSource?.Dispose(); } catch (ObjectDisposedException) { } finally