private void readObject(int index, DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    Object value;
    objectTypeArray[index] = in.readByte();
    if (logger.isTraceEnabled(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE)) {
      logger.trace(LogMarker.VERSIONED_OBJECT_LIST_VERBOSE, "reading object {} of type {}", index,
          objectTypeArray[index]);
    }
    boolean isException = objectTypeArray[index] == EXCEPTION;
    if (isException) {
      byte[] exBytes = DataSerializer.readByteArray(in);
      value = CacheServerHelper.deserialize(exBytes);
      // ignore the exception string meant for native clients
      DataSerializer.readString(in);
    } else if (serializeValues) {
      value = DataSerializer.readByteArray(in);
    } else {
      value = context.getDeserializer().readObject(in);
    }
    objects.add(value);
  }
sets the keys for this partlist
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/VersionedObjectList.java