Я получаю ConcurrentModificationException
, поскольку этот код доступен нескольким потокам одновременно:
public void flush(Audit... audits) {
// Copy first them on memory
this.pendingAudits.addAll(Arrays.asList(audits));
for (Iterator<Audit> it = this.pendingAudits.iterator(); it.hasNext();) {
// Do something
it.remove();
}
}
Я получаю итератор для pendingAudits
и удаляю каждый элементв то же время другие потоки могут добавлять некоторые другие проверки.
Как решить это элегантно?