Sorry, you're right. I missed the fact that Util.immutableList creates a copy of the list that's passed in. At first glance, It looked like it simply wrapped it using Collections#unmodifiableList. (IMO - that function is not very well named, Util.immutableCopy would probably be a better name).