The Vector API says :
The Iterators returned by Vector's iterator and listIterator methods are fail-fast: if the Vector is structurally modified at any time after the Iterator is created, in any way except through the Iterator's own remove or add methods, the Iterator will throw a ConcurrentModificationException. Thus, in the face of concurrent modification, the Iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic behavior at an undetermined time in the future. The Enumerations returned by Vector's elements method are not fail-fast.
And also, a ConcurrentModificationException is not limited to multi threads. As you can understand from the API excerpt above, it may also happens in a single
thread. So "this is an already inbuilt Synchronized" is not relevant.