code: public GetField readFields() throws IOException, ClassNotFoundException, NotActiveException {
          if (currentObject == null) {
              throw new NotActiveException();
          }
          EmulatedFieldsForLoading result = new EmulatedFieldsForLoading(currentClass);
          readFieldValues(result);
          return result;
      }
docs: Reads the persistent fields of the object that is currently being read
  from the source stream. The values read are stored in a GetField object
  that provides access to the persistent fields. This GetField object is
  then returned.
  
  @return the GetField object from which persistent fields can be accessed
  by name.
  @throws ClassNotFoundException
  if the class of an object being deserialized can not be
  found.
  @throws IOException
  if an error occurs while reading from this stream.
  @throws NotActiveException
  if this stream is currently not reading an object.