Collections.unmodifiableList e cópia defensiva

Se eu escrever

List<Integer> a1 = Arrays.asList(1, 2, 3);
List<Integer> a2 = Collections.unmodifiableList(a1);

a2 é somente leitura, mas se eu escrever

a1.set(0,10);

entãoa2 também é modificado.

Se na API é dito:

Retorna uma exibição unmodificável da coleção especificada. Esse método permite que os módulos forneçam aos usuários acesso "somente leitura" às coleções internas.

então, por que, se eu modificar a coleção original, também a coleção copiada para o alvo é modificada?

Talvez eu tenha entendido errado o significado e, em caso afirmativo, qual é a maneira de escrever uma cópia defensiva dessa coleção?

questionAnswers(7)

yourAnswerToTheQuestion