Listは常に可変長だと思っていましたが、List.asList()メソッドの引数は固定長なので注意が必要です。
JavaのAPIには、上記のように書かれています。
つまり、asListメソッドの戻り値がリストであっても、リストの長さが固定されているということです。
【Java】Arrays.asList()で注意すべき点 – Qiita
https://qiita.com/nkojima/items/390282a0912aa560ad22
List<String> stringList = Arrays.asList("apple", "banana", "cherry");
stringList.set(0, "apricot"); // これは有効
stringList.add("date"); // これはUnsupportedOperationExceptionをスローする