В сообщении об ошибке говорится, что список пуст, а не то, что он нулевой, поэтому ?
в ?.last()
не имеет значения.Это исключение «пустой список» всегда выдается при попытке извлечь последний элемент пустого списка по понятным причинам.Ваш findAll
отфильтровывает все и возвращает пустой список, что вызывает ошибку.
Вы говорите, что всегда проверяете пустой список таким образом, поэтому неясно, как ваш другой код способенЗвоните last()
в пустой список, не бросая.У вас точно есть случаи, когда collect()
возвращает пустой список?
Чтобы исправить этот конкретный случай, вы можете сделать:
Event newEvent = (lEvents.size() > 0) ? lEvents.last() : new Event()