From 06e2abad3df727718c4667e075bd2b994556d24e Mon Sep 17 00:00:00 2001 From: Youssef Fahmy Date: Mon, 29 Jun 2026 17:50:58 +0200 Subject: [PATCH] fix: Don't silently skip null assignment to OpenApiDocument.Tags Don't silently skip null assignment to OpenApiDocument.Tags --- src/Microsoft.OpenApi/Models/OpenApiDocument.cs | 1 + .../Models/OpenApiDocumentTests.cs | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs index d4fee9a96..a6571967b 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs @@ -84,6 +84,7 @@ public ISet? Tags { if (value is null) { + _tags = null; return; } _tags = value switch diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs index 10b1f6016..b4cfe2543 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs @@ -2145,6 +2145,17 @@ public void TagsSupportsCustomComparer() Assert.Equal(2, document.Tags.Count); } + [Fact] + public void TagsCanBeReInitializedToNull() + { + var document = new OpenApiDocument(); + Assert.Null(document.Tags); + document.Tags = new HashSet(); + Assert.NotNull(document.Tags); + document.Tags = null; + Assert.Null(document.Tags); + } + private sealed class CaseInsensitiveOpenApiTagEqualityComparer : IEqualityComparer { public bool Equals(OpenApiTag x, OpenApiTag y)