-
Notifications
You must be signed in to change notification settings - Fork 265
Closed
Labels
type:bugA broken experienceA broken experiencetype:regressionA bug from previous releaseA bug from previous release
Description
Describe the bug
Regression #1768 .
After upgrading from v1.6.16 to v1.6.17 we are hitting the following null reference.
This happens because we are explicitly setting Example = null in our code. If this is not allowed, I would expect an ArgumentNullException when setting it instead of a NullReferenceException when serializing.
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.OpenApi.Models.OpenApiMediaType.SerializeExamples(IOpenApiWriter writer, IDictionary`2 examples)
at Microsoft.OpenApi.Models.OpenApiMediaType.SerializeAsV3(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiRequestBody.<>c.<SerializeAsV3WithoutReference>b__28_0(IOpenApiWriter w, OpenApiMediaType c)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.<>c__DisplayClass17_0`1.<WriteMapInternal>b__0(IOpenApiWriter w, String _, T s)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteMapInternal[T](IOpenApiWriter writer, String name, IDictionary`2 elements, Action`3 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteMapInternal[T](IOpenApiWriter writer, String name, IDictionary`2 elements, Action`2 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredMap[T](IOpenApiWriter writer, String name, IDictionary`2 elements, Action`2 action)
at Microsoft.OpenApi.Models.OpenApiRequestBody.SerializeAsV3WithoutReference(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiRequestBody.SerializeAsV3(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiOperation.<>c.<SerializeAsV3>b__59_3(IOpenApiWriter w, OpenApiRequestBody r)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteOptionalObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Models.OpenApiOperation.SerializeAsV3(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiPathItem.<>c.<SerializeAsV3WithoutReference>b__39_2(IOpenApiWriter w, OpenApiOperation o)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteOptionalObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Models.OpenApiPathItem.SerializeAsV3WithoutReference(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiPathItem.SerializeAsV3(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiExtensibleDictionary`1.<>c.<SerializeAsV3>b__6_0(IOpenApiWriter w, T p)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Models.OpenApiExtensibleDictionary`1.SerializeAsV3(IOpenApiWriter writer)
at Microsoft.OpenApi.Models.OpenApiDocument.<>c.<SerializeAsV3>b__44_2(IOpenApiWriter w, OpenApiPaths p)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action`2 action)
at Microsoft.OpenApi.Models.OpenApiDocument.SerializeAsV3(IOpenApiWriter writer)
OpenApi File To Reproduce
Code repro:
using Microsoft.OpenApi.Models;
using Microsoft.OpenApi.Writers;
OpenApiDocument doc = new OpenApiDocument
{
Paths = new OpenApiPaths
{
["test"] = new OpenApiPathItem()
{
Operations =
{
[OperationType.Post] = new OpenApiOperation
{
RequestBody = new OpenApiRequestBody()
{
Content =
{
["application/json"] = new OpenApiMediaType()
{
Examples = null,
},
}
}
},
}
},
}
};
OpenApiJsonWriter apiWriter = new OpenApiJsonWriter(new StringWriter());
doc.SerializeAsV3(apiWriter);
Expected behavior
No NullReferenceException.
Screenshots/Code Snippets
Additional context
Metadata
Metadata
Assignees
Labels
type:bugA broken experienceA broken experiencetype:regressionA bug from previous releaseA bug from previous release