/** * RegionVersionHolder.fromData() calls this to create an exception */ static RVVException createException(DataInput in) throws IOException { long previousVersion = InternalDataSerializer.readUnsignedVL(in); int size = (int) InternalDataSerializer.readUnsignedVL(in); long last = previousVersion; long[] versions = new long[(int) size]; for (int i = 0; i < size; i++) { long delta = InternalDataSerializer.readUnsignedVL(in); long value = delta + last; versions[i] = value; last = value; } long delta = InternalDataSerializer.readUnsignedVL(in); long nextVersion = last + delta; RVVException result = createException(previousVersion, nextVersion, size); for (int i = 0; i < size; i++) { result.addReceived(versions[i]); } return result; }