Generally java.util.ConcurrentModificationException will occur when one thread to modify a Collection while another thread is iterating over it. Please check your code with this viewpoint. Below approach can be considered.
 Copy the collection object to be modified
 Modify the collection object inside the synchronized block
Don't listen to Steve. Just read this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop