Skip to content

Commit cea8929

Browse files
committed
chore: fixes potential NRT
Signed-off-by: Vincent Biret <[email protected]>
1 parent 0a819b4 commit cea8929

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/Microsoft.OpenApi/Reader/OpenApiModelFactory.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public static ReadResult Load(MemoryStream stream,
6868
public static T Load<T>(MemoryStream input, OpenApiSpecVersion version, string format, OpenApiDocument openApiDocument, out OpenApiDiagnostic diagnostic, OpenApiReaderSettings settings = null) where T : IOpenApiElement
6969
{
7070
format ??= InspectStreamFormat(input);
71+
settings ??= DefaultReaderSettings.Value;
7172
return settings.Readers[format].ReadFragment<T>(input, version, openApiDocument, out diagnostic, settings);
7273
}
7374

@@ -234,14 +235,15 @@ public static T Parse<T>(string input,
234235
return Load<T>(stream, version, format, openApiDocument, out diagnostic, settings);
235236
}
236237

237-
private static readonly OpenApiReaderSettings DefaultReaderSettings = new();
238+
private static readonly Lazy<OpenApiReaderSettings> DefaultReaderSettings = new(() => new OpenApiReaderSettings());
238239

239240
private static async Task<ReadResult> InternalLoadAsync(Stream input, string format, OpenApiReaderSettings settings, CancellationToken cancellationToken = default)
240241
{
242+
settings ??= DefaultReaderSettings.Value;
241243
var reader = settings.Readers[format];
242244
var readResult = await reader.ReadAsync(input, settings, cancellationToken).ConfigureAwait(false);
243245

244-
if (settings?.LoadExternalRefs ?? DefaultReaderSettings.LoadExternalRefs)
246+
if (settings.LoadExternalRefs)
245247
{
246248
var diagnosticExternalRefs = await LoadExternalRefsAsync(readResult.Document, settings, format, cancellationToken).ConfigureAwait(false);
247249
// Merge diagnostics of external reference
@@ -269,7 +271,8 @@ private static async Task<OpenApiDiagnostic> LoadExternalRefsAsync(OpenApiDocume
269271

270272
private static ReadResult InternalLoad(MemoryStream input, string format, OpenApiReaderSettings settings)
271273
{
272-
if (settings?.LoadExternalRefs ?? DefaultReaderSettings.LoadExternalRefs)
274+
settings ??= DefaultReaderSettings.Value;
275+
if (settings.LoadExternalRefs)
273276
{
274277
throw new InvalidOperationException("Loading external references are not supported when using synchronous methods.");
275278
}

0 commit comments

Comments
 (0)