diff --git a/src/main/java/net/openhft/chronicle/map/MapStatelessClient.java b/src/main/java/net/openhft/chronicle/map/MapStatelessClient.java index 0465d1bcb..b6908e323 100644 --- a/src/main/java/net/openhft/chronicle/map/MapStatelessClient.java +++ b/src/main/java/net/openhft/chronicle/map/MapStatelessClient.java @@ -3,13 +3,16 @@ package net.openhft.chronicle.map; import net.openhft.chronicle.engine.client.ClientWiredStatelessTcpConnectionHub; import net.openhft.chronicle.wire.CoreFields; import net.openhft.chronicle.wire.ParameterizeWireKey; +import net.openhft.chronicle.wire.ValueIn; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.function.Function; + /** * Created by Rob Austin */ -public abstract class MapStatelessClient< E extends ParameterizeWireKey> extends AbstactStatelessClient { +public abstract class MapStatelessClient extends AbstactStatelessClient { /** * @param channelName @@ -28,14 +31,19 @@ public abstract class MapStatelessClient< E extends ParameterizeWireKey> extends @Nullable protected R proxyReturnTypedObject( @NotNull final E eventId, + R usingValue, @NotNull final Class resultType, @Nullable Object... args) { + Function consumerIn = resultType == CharSequence.class && usingValue != null + ? f -> { + f.text((StringBuilder) usingValue); + return usingValue; + } + : f -> f.object(resultType); return proxyReturnWireConsumerInOut(eventId, - CoreFields.reply, toParameters(eventId, args), - f -> f.object(resultType)); - + CoreFields.reply, + toParameters(eventId, args), + consumerIn); } - - }