Цитата:
Сообщение от vetal.lebed
Глупость.. Многопоточнусть утт не причем.
Типичная ошибка итерации в Foreach'ом и модификации той же коллекции..
Для решения проблемы всего-то нужно использовать Iterator
|
Вовсе не обязательно. Ошибка значит ровно одно - коллекция была изменена во время итерации. А сделано это внутри нашего цикла или где то в другом потоке это не важно.
Мы не видим проблемный код и можем только гадать.
Вот пример такого же исключения:
Цитата:
java.util.ConcurrentModificationException
at l2open.util.GArray$Itr.checkForComodification(GArr ay.java:338)
at l2open.util.GArray$Itr.next(GArray.java:300)
at ai.FreyaStand.onEvtAttacked(FreyaStand.java:192)
at l2open.gameserver.ai.AbstractAI.notifyEvent(Abstra ctAI.java:128)
at l2open.gameserver.ai.AbstractAI.notifyEvent(Abstra ctAI.java:111)
at ....l2open.gameserver.model.L2Character.onHitTimer (L2Character.java:2860)
|
Вот цикл где бросило ConcurrentModificationException
PHP код:
192: for(L2NpcInstance minion : _minionsList)
193: attacker.addDamageHate(minion, 0, 1000);
Тоже переделать под итератор? Где тут в этих 2 строках изменяется _minionsList ?