private void readGemfireVersionRecord(DataInput dis) throws IOException {
    KnownVersion recoveredGFVersion = readProductVersionRecord(dis);
    final boolean hasDataVersion;
    if ((hasDataVersion = (recoveredGFVersion == KnownVersion.TOKEN))) {
      // actual GFE version will be the next record in this case
      byte opCode = dis.readByte();
      if (opCode != OPLOG_GEMFIRE_VERSION) {
        throw new DiskAccessException(
            String.format("Unknown opCode %s found in disk operation log.",
                opCode),
            getParent());
      }
      recoveredGFVersion = readProductVersionRecord(dis);
    }
    if (gfversion == null) {
      gfversion = recoveredGFVersion;
    } else {
      assert gfversion == recoveredGFVersion;
    }
    if (hasDataVersion) {
      byte opCode = dis.readByte();
      if (opCode != OPLOG_GEMFIRE_VERSION) {
        throw new DiskAccessException(
            String.format("Unknown opCode %s found in disk operation log.",
                opCode),
            getParent());
      }
      recoveredGFVersion = readProductVersionRecord(dis);
      if (dataVersion == null) {
        dataVersion = recoveredGFVersion;
      } else {
        assert dataVersion == recoveredGFVersion;
      }
    }
  }
@throws DiskAccessException if this file does not belong to our parent
geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java