Как сказал MRAB, если сервер отправляет несколько сообщений по каналу без указания конца каждого сообщения, клиент не всегда может правильно прочитать сообщения. Добавление времени ожидания после написания сообщения также не устранит причину проблемы.
Чтобы решить эту проблему, необходимо пометить конец каждого сообщения так, чтобы другая сторона могла его идентифицировать. Если клиент и сервер используют Netty, вы можете добавить LengthFieldPrepender и LengthFieldBasedFrameDecoder перед обработчиками json.
String encodedMsg = new Gson().toJson(
sendToClient,newTypeToken<ArrayList<CoordinateVO>>() {}.getType());
По умолчанию Gson использует html-экранирование для содержимого, иногда это приводит к проводному кодированию, вы можете отключить его, если требуется, с помощью фабрики Gson
final static GsonBuilder gsonBuilder = new GsonBuilder().disableHtmlEscaping();
....
String encodedMsg = gsonBuilder.create().toJson(object);