code: private void readObject(java.io.ObjectInputStream objectInputStream)
                      throws java.io.IOException
                      , java.lang.ClassNotFoundException
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass,
                          "readObject",
                          "objectInputStream=" + objectInputStream + "(java.io.ObjectInputStream)");
  
          objectInputStream.defaultReadObject();
          // We cannot set the available head during recovery because the links may get deleted before
          // recovery is complete, instead force a scan when we use availableHead for the first time.    
          availableHead = null;
          availableSize = size; // All links are initially available.
          availableSizeLock = new Object();
          managedObjectsToAdd = new java.util.ArrayList(1);
          managedObjectsToReplace = new java.util.ArrayList(3);
          tokensToNotify = new java.util.ArrayList(1);
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass,
                         "readObject");
      }
docs: Customized deserialization.
  
  @param objectInputStream containing the serialized form of the LinkedList.
  @throws java.io.IOException
  @throws java.lang.ClassNotFoundException