This call doesn't make sense. For any collection c, calling c.containsAll(c) should always be true, and c.retainAll(c) should have no effect.
c
c.containsAll(c)
c.retainAll(c)