Skip to content

Commit 021229c

Browse files
committed
Fix MultiJson when direct streaming is disabled
1 parent 6dc8ff9 commit 021229c

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

src/Elastic.Transport/Requests/Body/PostData.MultiJson.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public override void Write(Stream writableStream, ITransportConfiguration settin
4949
$"{nameof(PostDataMultiJson<T>)} only does not support {nameof(PostType)}.{Type.GetStringValue()}");
5050

5151
MemoryStream? buffer = null;
52+
var stream = writableStream;
5253

5354
switch (Type)
5455
{
@@ -60,12 +61,12 @@ public override void Write(Stream writableStream, ITransportConfiguration settin
6061
if (!enumerator.MoveNext())
6162
return;
6263

63-
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref writableStream);
64+
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref stream);
6465
do
6566
{
6667
var bytes = enumerator.Current.Utf8Bytes();
67-
writableStream.Write(bytes, 0, bytes.Length);
68-
writableStream.Write(NewLineByteArray, 0, 1);
68+
stream.Write(bytes, 0, bytes.Length);
69+
stream.Write(NewLineByteArray, 0, 1);
6970
} while (enumerator.MoveNext());
7071

7172
break;
@@ -78,12 +79,12 @@ public override void Write(Stream writableStream, ITransportConfiguration settin
7879
if (!enumerator.MoveNext())
7980
return;
8081

81-
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref writableStream);
82+
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref stream);
8283
do
8384
{
8485
var o = enumerator.Current;
85-
settings.RequestResponseSerializer.Serialize(o, writableStream, SerializationFormatting.None);
86-
writableStream.Write(NewLineByteArray, 0, 1);
86+
settings.RequestResponseSerializer.Serialize(o, stream, SerializationFormatting.None);
87+
stream.Write(NewLineByteArray, 0, 1);
8788
} while (enumerator.MoveNext());
8889

8990
break;
@@ -102,6 +103,8 @@ public override async Task WriteAsync(Stream writableStream, ITransportConfigura
102103
$"{nameof(PostDataMultiJson<T>)} only does not support {nameof(PostType)}.{Type.GetStringValue()}");
103104

104105
MemoryStream? buffer = null;
106+
var stream = writableStream;
107+
105108
switch (Type)
106109
{
107110
case PostType.EnumerableOfString:
@@ -113,12 +116,12 @@ public override async Task WriteAsync(Stream writableStream, ITransportConfigura
113116
if (!enumerator.MoveNext())
114117
return;
115118

116-
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref writableStream);
119+
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref stream);
117120
do
118121
{
119122
var bytes = enumerator.Current.Utf8Bytes();
120-
await writableStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
121-
await writableStream.WriteAsync(NewLineByteArray, 0, 1, cancellationToken).ConfigureAwait(false);
123+
await stream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
124+
await stream.WriteAsync(NewLineByteArray, 0, 1, cancellationToken).ConfigureAwait(false);
122125
} while (enumerator.MoveNext());
123126

124127
break;
@@ -132,14 +135,14 @@ public override async Task WriteAsync(Stream writableStream, ITransportConfigura
132135
if (!enumerator.MoveNext())
133136
return;
134137

135-
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref writableStream);
138+
BufferIfNeeded(settings.MemoryStreamFactory, disableDirectStreaming, ref buffer, ref stream);
136139
do
137140
{
138141
var o = enumerator.Current;
139-
await settings.RequestResponseSerializer.SerializeAsync(o, writableStream,
142+
await settings.RequestResponseSerializer.SerializeAsync(o, stream,
140143
SerializationFormatting.None, cancellationToken)
141144
.ConfigureAwait(false);
142-
await writableStream.WriteAsync(NewLineByteArray, 0, 1, cancellationToken).ConfigureAwait(false);
145+
await stream.WriteAsync(NewLineByteArray, 0, 1, cancellationToken).ConfigureAwait(false);
143146
} while (enumerator.MoveNext());
144147

145148
break;

0 commit comments

Comments
 (0)