code: private void readObject(java.io.ObjectInputStream objectInputStream)
                      throws java.io.IOException
                      , java.lang.ClassNotFoundException
      {
          final String methodName = "readObject";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          methodName,
                          new Object[] { objectInputStream });
  
          objectInputStream.defaultReadObject();
  
          threadsWaitingForLock = 0;
          forcedUpdateSequence = 0;
          forcedUpdateSequenceLock = new ForcedUpdateSequenceLock();
          transactionLock = new TransactionLock(null);
          state = stateReady; // Initial state.
          previousState = -1; // No previous state.
          stateLock = new Object();
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this,
                         cclass,
                         methodName);
      }
docs: Customized deserialization. Notice that subclasses do not have to call this method
  in their super class because the deserialisation of the subclass need not concern
  itself with restoring the state of the super class.
  
  @param objectInputStream containing the serialized form of the Object.
  @throws java.io.IOException
  @throws java.lang.ClassNotFoundException