docs: public WsByteBuffer[] marshallMessage() throws MessageSentException {
          final boolean bTrace = TraceComponent.isAnyTracingEnabled();
          if (bTrace && tc.isEntryEnabled()) {
              Tr.entry(tc, "marshallMessage");
          }
  
          preMarshallMessage();
          WsByteBuffer[] marshalledObj = hasFirstLineChanged() ? marshallLine() : null;
          headerComplianceCheck();
          marshalledObj = marshallHeaders(marshalledObj);
          postMarshallMessage();
  
          if (bTrace && tc.isEntryEnabled()) {
              Tr.exit(tc, "marshallMessage");
          }
          return marshalledObj;
      }