code: private void writeObject(java.io.ObjectOutputStream out) throws IOException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "writeObject", out);
  
          try {
              if (requiresInit)
                  lazyInitForReading();
  
              // If message is in write mode, get data into byte array so that we
              // can restore the output stream during readObject.
              // If message is in read mode, store the offset so that we can skip
              // the input stream during readObject.
              if (isBodyReadOnly()) {
                  // read mode
                  streamOffset = dataBuffer.length - readStream.available();
              }
              else {
                  // write mode
                  if (_writeBytes != null) {
                      // SIB0121: If the producer has promised not to modify the payload after set,
                      // _writeBytes will always be null
                      dataBuffer = _writeBytes.toByteArray();
                  }
              }
              // Use the default mechanism to write the fields.
              out.defaultWriteObject();
          } catch (IOException e) {
              // No FFDC code needed
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Error during writeObject", e);
              // pass on
              throw e;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "writeObject");
      }
docs: ////////////////////////////////////////////////////////////////////////////