Can you show us some more of the code; specifically, how are a and b declared and filled with data?
This gives me a hint: cleared is a Collection<java.util.List>. So a and b are also collections of lists? Which means, a is a List that contains a List that contains an integer 1, and b is a HashSet that contains a List that contains the integers 1 and 2? If that's the case, then your output is not surprising. The removeAll method is going to try to remove the List [1,2] from a, but since a does not contain a List [1,2], it's not going to remove anything.