Я столкнулся с ConcurrentModificationException и посмотрев на него, я не вижу причины, почему это происходит; область, отбрасывающая исключение, и все места, изменяющие коллекцию, окружены
synchronized (this.locks.get(id)) {
...
} // locks is a HashMap<String, Object>;
Я попытался поймать жуткий поток, но все, что я мог прибить (установив точку останова в исключении), - это то, что бросающий поток владеет монитором, в то время как другой поток (есть два потока в программе) спит.
Как мне продолжить? Что вы обычно делаете, когда сталкиваетесь с подобными проблемами с потоками?