Skip to content

Commit a9bd3fe

Browse files
Use JsonDocument.TryParseValue
1 parent 3bc302d commit a9bd3fe

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

src/EventStore.Client/Common/Diagnostics/EventMetadataExtensions.cs

+7-11
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,14 @@ public static ReadOnlySpan<byte> InjectTracingContext(this ReadOnlyMemory<byte>
1717

1818
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1919
public static TracingMetadata ExtractTracingMetadata(this ReadOnlyMemory<byte> eventMetadata) {
20-
try {
21-
using var doc = JsonDocument.Parse(eventMetadata);
22-
23-
if (!doc.RootElement.TryGetProperty(TracingConstants.Metadata.TraceId, out var traceId)
24-
|| !doc.RootElement.TryGetProperty(TracingConstants.Metadata.SpanId, out var spanId))
25-
return TracingMetadata.None;
26-
27-
return new TracingMetadata(traceId.GetString(), spanId.GetString());
28-
}
29-
catch (JsonException) {
20+
var reader = new Utf8JsonReader(eventMetadata.Span);
21+
22+
if (!JsonDocument.TryParseValue(ref reader, out var doc)
23+
|| !doc.RootElement.TryGetProperty(TracingConstants.Metadata.TraceId, out var traceId)
24+
|| !doc.RootElement.TryGetProperty(TracingConstants.Metadata.SpanId, out var spanId))
3025
return TracingMetadata.None;
31-
}
26+
27+
return new TracingMetadata(traceId.GetString(), spanId.GetString());
3228
}
3329

3430
[MethodImpl(MethodImplOptions.AggressiveInlining)]

0 commit comments

Comments
 (0)