Guava MultiMap e ConcurrentModificationException [duplicado]

Esta pergunta já tem uma resposta aqui:

Iterando através de uma coleção, evitando ConcurrentModificationException ao remover objetos em um loop 3 respostasPor que é uma ConcurrentModificationException lançada e como depurá-la respostas

Eu não entendo por que recebo uma ConcurrentModificationException quando itero através destemultimap. Eu li o seguinteentrad, mas não tenho certeza se entendi tudo. Eu tentei adicionar um bloco sincronizado. Mas minha dúvida é com o que sincronizar e quand

Omultimap é um campo criado dessa forma:

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

e usado assim:

eventMultiMap.put(event, command);

e assim (tentei sincronizar esta parte no mapa, mas sem sucesso)

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