code: public void writeObject(java.io.DataOutputStream dataOutputStream)
                      throws ObjectManagerException
      {
          final String methodName = "writeObject";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          methodName,
                          new Object[] { dataOutputStream });
  
          try {
              dataOutputStream.writeByte(simpleSerialVersion);
              super.writeObject(dataOutputStream);
  
              if (head == null) {
                  dataOutputStream.writeByte(0);
              } else {
                  dataOutputStream.writeByte(1);
                  head.writeObject(dataOutputStream); // The first element in the list.
                  tail.writeObject(dataOutputStream); // The final element in the list.
              } // if (head == null).
              dataOutputStream.writeLong(size);
          } catch (java.io.IOException exception) {
              // No FFDC Code Needed.
              ObjectManager.ffdc.processException(this, cclass, methodName, exception, "1:1565:1.40");
  
              if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
                  trace.exit(this, cclass,
                             methodName,
                             "via PermanentIOException");
              throw new PermanentIOException(this,
                                             exception);
          } // catch (java.io.IOException exception).
  
          // We cannot check size as we are subclassed.
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass,
                         methodName);
      }
docs: /*
  (non-Javadoc)
  
  @see SimplifiedSerialization.writeObject(java.io.DataInputStream)