private ByteBufferSharing readAtLeast(int bytes) throws IOException {
    peerNetData = ioFilter.ensureWrappedCapacity(bytes, peerNetData,
        BufferPool.BufferType.TRACKED_RECEIVER);
    return ioFilter.readAtLeast(conn.getSocket().getChannel(), bytes, peerNetData);
  }
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