Studio может генерировать некорректные геттеры и сеттеры

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

Например, при создании такого атрибута через конструктор
image

Будет сгенерировано следующее описание:

...
@Lookup(type = LookupType.DROPDOWN, actions = {"lookup", "open"})
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "C_MASTER_FIELD_ID")
    private MasterEntity cMasterField;

    public MasterEntity getcMasterField() {
        return cMasterField;
    }

    public void setcMasterField(MasterEntity cMasterField) {
        this.cMasterField = cMasterField;
    }
...

Экран browse с атрибутом cMasterField будет работать нормально, а вот на экране редактирования будут твориться чудеса - от неработающих элементов управления и вплоть до потери ранее введенных в такой атрибут данных при редактировании любых других атрибутов сущности.

Если отрефакторить getcMasterField в getCMasterField и setcMasterField в setCMasterField - все проблемы исчезают.

CUBA Platform version: 7.2.13
CUBA Studio plugin version: 15.4-202
IntelliJ version: IntelliJ IDEA 2021.1.1 (Community Edition)

Добрый день

Спасибо, что сообщили о проблеме.
Действительно CUBA ведёт себя некорректно с такими именами геттеров и сеттеров.
Создан issue по этой проблеме.

При этом хотелось бы обратить внимание, что это как раз корректные имена для методов доступа согласно Java Bean спецификации. И IDEA и Eclpise генерируют методы именно таким образом.
Вот например пост на форуме JetBrains: https://intellij-support.jetbrains.com/hc/en-us/community/posts/206879995-bean-naming-conventions-getter-setter
К сожалению эта конвенция не всегда соблюдается, поэтому самым надёжным решением будет не использовать подобные имена атрибутов.

1 симпатия