diff --git a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java index 1f32d8d90..09fb0b73f 100644 --- a/src/main/java/net/openhft/chronicle/map/TcpReplicator.java +++ b/src/main/java/net/openhft/chronicle/map/TcpReplicator.java @@ -1329,11 +1329,25 @@ class StatelessServerConnector { private Work toString(Bytes in, Bytes out) { long sizeLocation = reflectTransactionId(in, out); + + String str; + long remaining = out.remaining(); try { - out.writeObject(map.toString()); + str = map.toString(); } catch (RuntimeException e) { return sendException(out, sizeLocation, e); } + + assert remaining > 4; + + // this stops the toString overflowing the buffer + final String result = (str.length() < remaining) ? + str : + str.substring(0, (int) (remaining - 4)) + "..."; + + out.writeObject(str); + + out.writeObject(result); writeSizeAndFlags(sizeLocation, false, out); return null; }