docs: private void writeObject(ObjectOutputStream out) throws IOException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "writeObject");
  
      /* Call the default writeObject */
      out.defaultWriteObject();
  
      try {
        /* Get the flattened version of the message */
        List buffers = jmo.encodeFast(null);
  
        /* Write out the schema defintions needed to decode this message */
        JMFSchema[] schemas = jmo.getEncodingSchemas();
        out.writeInt(schemas.length);
        for (int i = 0; i < schemas.length; i++)
          out.writeObject(schemas[i].toByteArray());
  
        /* Write out the buffers to the ObjectOutputStream */
        out.writeObject(buffers);
      }
      /* The message is not serializable until all required fields have been set */
      catch (MessageEncodeFailedException e) {
        FFDCFilter.processException(e, "com.ibm.ws.sib.mfp.impl.MessageImpl.writeObject", "msg100", this);
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "serialization failed: " + e);
        NotSerializableException newE  = new NotSerializableException();
        newE.initCause(e);
        throw newE;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "writeObject");
    }