docs: private void processBody() {
      // There is no reliable way to get the uncompressed size per message when it's compressed,
      // because the uncompressed bytes are provided through an InputStream whose total size is
      // unknown until all bytes are read, and we don't know when it happens.
      statsTraceCtx.inboundMessageRead(currentMessageSeqNo, inboundBodyWireSize, -1);
      inboundBodyWireSize = 0;
      InputStream stream = compressedFlag ? getCompressedBody() : getUncompressedBody();
      nextFrame = null;
      listener.messagesAvailable(new SingleMessageProducer(stream));
  
      // Done with this frame, begin processing the next header.
      state = State.HEADER;
      requiredLength = HEADER_LENGTH;
    }