@Override
    public List<?> read(final Kryo kryo, final Input input, final Class<? extends List<?>> clazz) {
      kryo.reference(FAKE_REFERENCE);
      final List<?> list = (List<?>) kryo.readClassAndObject(input);
      final int fromIndex = input.readInt(true);
      final int toIndex = input.readInt(true);
      return list.subList(fromIndex, toIndex);
    }
Supports sublists created via {@link ArrayList#subList(int, int)} since java7 and {@link LinkedList#subList(int, int)} since java9 (openjdk).
This is from kryo-serializers package.
ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java