Recent changes (
JDK-8193128) to the unmodifiable collections changed the sublist implementation. This has the side effect of causing List.copyOf() no longer to make copies of sublists. This might seem like an optimization, but in this case an actual copy should be made. Copying sublists is useful because it makes a copy of a portion of the backing list, which can then be garbage collected. Making a copy also allows the result to be serializable, whereas in general sublists are not serializable. This last is actually a conformance issue, since List.copyOf() requires the result to be serializable.