void readChunk(Header header, MsgDestreamer md)
      throws IOException {
    try (final ByteBufferSharing sharedBuffer = readAtLeast(header.messageLength)) {
      ByteBuffer unwrappedBuffer = sharedBuffer.getBuffer();
      getStats().incMessagesBeingReceived(md.size() == 0, header.messageLength);
      md.addChunk(unwrappedBuffer, header.messageLength);
      // show that the bytes have been consumed by adjusting the buffer's position
      unwrappedBuffer.position(unwrappedBuffer.position() + header.messageLength);
    }
  }
Block until you can read a message. Returns null if the message was a message chunk.

@return the message, or null if we only received a chunk of the message
geode-core/src/main/java/org/apache/geode/internal/tcp/MsgReader.java