diff --git a/test/framework/src/main/java/org/elasticsearch/transport/nio/channel/TcpReadContext.java b/test/framework/src/main/java/org/elasticsearch/transport/nio/channel/TcpReadContext.java index c332adbd3142c..ee56f6f6f9763 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/nio/channel/TcpReadContext.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/nio/channel/TcpReadContext.java @@ -67,6 +67,8 @@ public int read() throws IOException { BytesReference message; + // Frame decoder will throw an exception if the message is improperly formatted, the header is incorrect, + // or the message is corrupted while ((message = frameDecoder.decode(createCompositeBuffer(), rawBytesCount)) != null) { int messageLengthWithHeader = message.length(); NetworkBytesReference.vectorizedIncrementReadIndexes(references, messageLengthWithHeader); @@ -75,7 +77,11 @@ public int read() throws IOException { try { BytesReference messageWithoutHeader = message.slice(6, message.length() - 6); - handler.handleMessage(messageWithoutHeader, channel, channel.getProfile(), messageWithoutHeader.length()); + + // A message length of 6 bytes it is just a ping. Ignore for now. + if (messageLengthWithHeader != 6) { + handler.handleMessage(messageWithoutHeader, channel, channel.getProfile(), messageWithoutHeader.length()); + } } catch (Exception e) { handler.handleException(channel, e); }