Guava MultiMap y ConcurrentModificationException [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Interando a través de una Colección, evitando ConcurrentModificationException al eliminar objetos en un bucle 23 respuestas ¿Por qué se lanza una ConcurrentModificationException y cómo depurarla? 6 respuestas

No entiendo por qué obtengo una ConcurrentModificationException cuando itero a través de estamultimap. Leo el siguienteentrad, pero no estoy seguro de haber entendido todo. Intenté agregar un bloque sincronizado. Pero mi duda es con qué sincronizar y cuándo.

Losmultimap es un campo y se creó así:

private Multimap<GenericEvent, Command> eventMultiMap =   
   Multimaps.synchronizedMultimap(HashMultimap.<GenericEvent, Command> create());

y se usa así:

eventMultiMap.put(event, command);

y así (intenté sincronizar esta parte en el mapa, pero sin éxito)

for (Entry<GenericEvent, Command> entry : eventMultiMap.entries()) {
    if (entry.getValue().equals(command)) {
        eventMultiMap.remove(entry.getKey(), entry.getValue());
        nbRemoved++;
    }
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta