Проблема с boolean-свойствами сущностей в kotlin

Добрый день,

При миграции проекта CUBA на Jmix мы столкнулись со следующей проблемой - в сущностях, реализованных на kotlin, некорректно работают свойства с типом boolean, имя которых начинается на “is” (например, isActive). Судя по байт-коду классов после сборки для этих свойств не выполняется bytecode enhancement. Вероятно проблема связана с правилами генерации имени getter-методов для таких свойства.

Тестовый проект, в котором воспроизводится проблема - jmix-sandbox (класс User, свойство isActive).

В CUBA данная проблема не воспроизводилась. В качестве обходного решения можно изменить имена getter и setter для свойства с помощью аннотации JvmName, например:

    @get:JvmName("getIsActive")
    @set:JvmName("setIsActive")
    @Column(name = "IS_ACTIVE")
    var isActive: Boolean? = true

День добрый,
спасибо за сообщение о проблеме и тестовый пример, завели тикет Enhance kotlin-style accessors for boolean properties · Issue #34 · jmix-projects/jmix-gradle-plugin · GitHub

С уважением,
Дмитрий

1 лайк