Почему происходит ConcurrentModificationException при обращении к коллекции, хотя она не изменялась?

Пишу код для b-дерева, при вставке нового элемента через цикл нахожу список, в который его нужно вставить.

В цикле с auxNode.getKeys() изменений не происходит, но при попытке обращения к auxNode.getKeys().size() уже вне цикла происходит ошибка ConcurrentModificationException. Почему?

Пыталась сделать цикл через итератор, сделать временные переменные с keys, children и прочим и гнать ее через цикл, но результат один и тот же.

int i = 0;
while (!auxNode.isLeaf()) {
    int currentValue = auxNode.getKeys().get(i);
    if (i == 0 && newKey < currentValue) {
         auxNode = auxNode.getChildrenNodes().get(0);
    } else if (i == auxNode.getKeys().size() - 1 && newKey > currentValue) {
        auxNode = auxNode.getChildrenNodes().get(i + 1);
    } else if (currentValue < newKey) {
        int nextValue = auxNode.getKeys().get(i + 1);
        if (newKey < nextValue) {
            auxNode = auxNode.getChildrenNodes().get(i + 1);
        }
    }
    i++;
}
if (auxNode.getKeys().size() < t - 1) { //на этой строке выдает ошибку
    ...

Ответы (0 шт):