From 59eca54f1141fadb6f3888d44c0c02ee5d26f90f Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Fri, 1 Apr 2022 01:31:26 +0200 Subject: [PATCH] Bugfix --- .../database/remote/QuicRPCServer.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/it/cavallium/dbengine/database/remote/QuicRPCServer.java b/src/main/java/it/cavallium/dbengine/database/remote/QuicRPCServer.java index f67a09a..a9dd106 100644 --- a/src/main/java/it/cavallium/dbengine/database/remote/QuicRPCServer.java +++ b/src/main/java/it/cavallium/dbengine/database/remote/QuicRPCServer.java @@ -194,17 +194,22 @@ public class QuicRPCServer { return localDb.getAllocator().copyOf(QuicUtils.toArrayNoCopy(newValue.value())); } }, singletonUpdateInit.updateReturnMode()) - .map(result -> new BinaryOptional(result != null ? NullableBinary.of(Binary.of(toByteList(result))) : NullableBinary.empty())); + .map(resultSend -> { + if (resultSend != null) { + try (var r = resultSend.receive()) { + return new BinaryOptional(NullableBinary.of(Binary.of(toByteList(r)))); + } + } + return new BinaryOptional(NullableBinary.empty()); + }); return Flux.merge(update, clientBound.asFlux()); }); } - private static ByteList toByteList(Send prev) { - try (var prevVal = prev.receive()) { - byte[] result = new byte[prevVal.readableBytes()]; - prevVal.readBytes(result, 0, result.length); - return ByteList.of(result); - } + private static ByteList toByteList(Buffer prev) { + byte[] result = new byte[prev.readableBytes()]; + prev.readBytes(result, 0, result.length); + return ByteList.of(result); } private Mono handleGetSingleton(GetSingleton getSingleton) {