Skip to content

Commit a54ee5b

Browse files
authored
Merge pull request #926 from /issues/842
Added fix to handle case where produces or consumes is empty array
2 parents e3dbf99 + 6cf6f51 commit a54ee5b

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-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: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,20 @@ internal static partial class OpenApiV2Deserializer
5757
}
5858
},
5959
{
60-
"consumes", (o, n) => n.Context.SetTempStorage(
61-
TempStorageKeys.OperationConsumes,
62-
n.CreateSimpleList(s => s.GetScalarValue()))
60+
"consumes", (o, n) => {
61+
var consumes = n.CreateSimpleList(s => s.GetScalarValue());
62+
if (consumes.Count > 0) {
63+
n.Context.SetTempStorage(TempStorageKeys.OperationConsumes,consumes);
64+
}
65+
}
6366
},
6467
{
65-
"produces", (o, n) => n.Context.SetTempStorage(
66-
TempStorageKeys.OperationProduces,
67-
n.CreateSimpleList(s => s.GetScalarValue()))
68+
"produces", (o, n) => {
69+
var produces = n.CreateSimpleList(s => s.GetScalarValue());
70+
if (produces.Count > 0) {
71+
n.Context.SetTempStorage(TempStorageKeys.OperationProduces, produces);
72+
}
73+
}
6874
},
6975
{
7076
"responses", (o, n) =>

0 commit comments

Comments
 (0)