Skip to content

Commit 45d7ab1

Browse files
committed
Added fix to handle case where produces or consumes is explicitly set as an empty array
1 parent 05b9baf commit 45d7ab1

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

src/Microsoft.OpenApi.Readers/V2/OpenApiDocumentDeserializer.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,22 @@ internal static partial class OpenApiV2Deserializer
3636
},
3737
{
3838
"consumes",
39-
(o, n) => n.Context.SetTempStorage(TempStorageKeys.GlobalConsumes, n.CreateSimpleList(s => s.GetScalarValue()))
39+
(o, n) => {
40+
var consumes = n.CreateSimpleList(s => s.GetScalarValue());
41+
if (consumes.Count > 0)
42+
{
43+
n.Context.SetTempStorage(TempStorageKeys.GlobalConsumes, consumes);
44+
}
45+
}
4046
},
4147
{
42-
"produces",
43-
(o, n) => n.Context.SetTempStorage(TempStorageKeys.GlobalProduces, n.CreateSimpleList(s => s.GetScalarValue()))
48+
"produces", (o, n) => {
49+
var produces = n.CreateSimpleList(s => s.GetScalarValue());
50+
if (produces.Count > 0)
51+
{
52+
n.Context.SetTempStorage(TempStorageKeys.GlobalProduces, produces);
53+
}
54+
}
4455
},
4556
{"paths", (o, n) => o.Paths = LoadPaths(n)},
4657
{

src/Microsoft.OpenApi.Readers/V2/OpenApiOperationDeserializer.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System.Collections.Generic;
55
using System.Linq;
6+
using System.Xml.Schema;
67
using Microsoft.OpenApi.Any;
78
using Microsoft.OpenApi.Extensions;
89
using Microsoft.OpenApi.Models;
@@ -57,14 +58,20 @@ internal static partial class OpenApiV2Deserializer
5758
}
5859
},
5960
{
60-
"consumes", (o, n) => n.Context.SetTempStorage(
61-
TempStorageKeys.OperationConsumes,
62-
n.CreateSimpleList(s => s.GetScalarValue()))
61+
"consumes", (o, n) => {
62+
var consumes = n.CreateSimpleList(s => s.GetScalarValue());
63+
if (consumes.Count > 0) {
64+
n.Context.SetTempStorage(TempStorageKeys.OperationConsumes,consumes);
65+
}
66+
}
6367
},
6468
{
65-
"produces", (o, n) => n.Context.SetTempStorage(
66-
TempStorageKeys.OperationProduces,
67-
n.CreateSimpleList(s => s.GetScalarValue()))
69+
"produces", (o, n) => {
70+
var produces = n.CreateSimpleList(s => s.GetScalarValue());
71+
if (produces.Count > 0) {
72+
n.Context.SetTempStorage(TempStorageKeys.OperationProduces, produces);
73+
}
74+
}
6875
},
6976
{
7077
"responses", (o, n) =>

0 commit comments

Comments
 (0)