diff --git a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java index 43ba1f2cf..ebdabbe1b 100644 --- a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java +++ b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java @@ -37,7 +37,6 @@ import java.nio.ByteOrder; import java.nio.channels.*; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import static java.nio.channels.SelectionKey.*; import static java.util.concurrent.TimeUnit.MILLISECONDS; @@ -1343,15 +1342,13 @@ class StatelessServerConnector { } - // an object poll of 1 using an atomic reference - private AtomicReference using = new AtomicReference(); public Work mapForKey(ByteBufferBytes reader, Bytes writer, long sizeLocation) { final ThreadLocalCopies local = keyValueSerializer.threadLocalCopies(); final K key = readKey(reader, local); - final V value = using.getAndSet(null); + final Function function = (Function) reader.readObject(); try { Object result = map.mapForKey(key, function); @@ -1360,8 +1357,6 @@ class StatelessServerConnector { } catch (Throwable e) { LOG.info("", e); return sendException(writer, sizeLocation, e); - } finally { - using.set(value); } writeSizeAndFlags(sizeLocation, false, writer); @@ -1373,7 +1368,7 @@ class StatelessServerConnector { final ThreadLocalCopies local = keyValueSerializer.threadLocalCopies(); final K key = readKey(reader, local); - final V value = using.getAndSet(null); + final Mutator mutator = (Mutator) reader.readObject(); try { Object result = map.updateForKey(key, mutator); @@ -1382,8 +1377,6 @@ class StatelessServerConnector { } catch (Throwable e) { LOG.info("", e); return sendException(writer, sizeLocation, e); - } finally { - using.set(value); } writeSizeAndFlags(sizeLocation, false, writer); diff --git a/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java b/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java index 1c54ff668..7cf725d54 100644 --- a/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java +++ b/src/test/java/net/openhft/chronicle/map/StatelessClientTest.java @@ -88,7 +88,7 @@ public class StatelessClientTest { String actual = statelessMap.mapForKey(11, ToString.INSTANCE); - Assert.assertEquals("", actual); + Assert.assertEquals(null, actual); } } }