From 1155eb7eb8f21cf8325455607c346c9c4ea02356 Mon Sep 17 00:00:00 2001 From: Graham Date: Sat, 3 Jul 2021 14:47:52 +0100 Subject: [PATCH] Set writerIndex correctly in ByteBufBodyHandler Signed-off-by: Graham --- .../main/kotlin/org/openrs2/buffer/ByteBufBodyHandler.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/buffer/src/main/kotlin/org/openrs2/buffer/ByteBufBodyHandler.kt b/buffer/src/main/kotlin/org/openrs2/buffer/ByteBufBodyHandler.kt index 438daae8..eb7f5c3e 100644 --- a/buffer/src/main/kotlin/org/openrs2/buffer/ByteBufBodyHandler.kt +++ b/buffer/src/main/kotlin/org/openrs2/buffer/ByteBufBodyHandler.kt @@ -19,6 +19,7 @@ public class ByteBufBodyHandler @Inject constructor( return object : HttpResponse.BodySubscriber { private val buf = alloc.compositeBuffer() private val future = CompletableFuture() + private var len = 0 override fun onSubscribe(subscription: Flow.Subscription) { subscription.request(Long.MAX_VALUE) @@ -26,7 +27,11 @@ public class ByteBufBodyHandler @Inject constructor( override fun onNext(item: List) { for (b in item) { - buf.addComponent(Unpooled.wrappedBuffer(b)) + val component = Unpooled.wrappedBuffer(b) + buf.addComponent(component) + + len += component.readableBytes() + check(len >= 0) } } @@ -36,6 +41,7 @@ public class ByteBufBodyHandler @Inject constructor( } override fun onComplete() { + buf.writerIndex(len) future.complete(buf) }