Событие beforeUpdate
происходит во время сброса, поэтому вы не можете запустить еще один сброс.(Если вы это сделаете, вы получите переполнение стека.)
Если beforeUpdate
вернет false, сохранение будет отменено.Я предлагаю вам попробовать следующее:
def beforeUpdate() {
y.name = "new name"
return true
}
Я полагаю, что метод сохранения возвращает значение null (сбой), что приводит к значению false.