Ошибка при повторном добавлении действия в EntityPicker

Добрый день,

Столкнулись с ошибкой IllegalArgumentException: Cannot insert element with index... при повторном добавлении действия для компонента EntityPicker.

Stacketrace:

java.lang.IllegalArgumentException: Cannot insert element with index 4 when there are 3 children
	at com.vaadin.flow.dom.Node.insertChild(Node.java:358) ~[flow-server-24.3.3.jar:24.3.3]
	at com.vaadin.flow.dom.Node.insertChild(Node.java:340) ~[flow-server-24.3.3.jar:24.3.3]
	at com.vaadin.flow.component.HasComponents.addComponentAtIndex(HasComponents.java:165) ~[flow-server-24.3.3.jar:24.3.3]
	at io.jmix.flowui.kit.component.valuepicker.ValuePickerActionSupport.addButton(ValuePickerActionSupport.java:99) ~[jmix-flowui-kit-2.2.1.jar:na]
	at io.jmix.flowui.kit.component.valuepicker.ValuePickerActionSupport.addActionInternal(ValuePickerActionSupport.java:80) ~[jmix-flowui-kit-2.2.1.jar:na]
	at io.jmix.flowui.kit.component.delegate.AbstractActionsHolderSupport.addAction(AbstractActionsHolderSupport.java:48) ~[jmix-flowui-kit-2.2.1.jar:na]
	at io.jmix.flowui.kit.component.valuepicker.ValuePickerBase.addAction(ValuePickerBase.java:146) ~[jmix-flowui-kit-2.2.1.jar:na]
	at io.jmix.flowui.kit.component.HasActions.addAction(HasActions.java:29) ~[jmix-flowui-kit-2.2.1.jar:na]
	at io.jmix.datatoolsflowui.view.entityinspector.assistant.InspectorFormLayoutBuilder.addField(InspectorFormLayoutBuilder.java:220) ~[jmix-datatools-flowui-2.2.1.jar:na]
	at io.jmix.datatoolsflowui.view.entityinspector.assistant.InspectorFormLayoutBuilder.build(InspectorFormLayoutBuilder.java:153) ~[jmix-datatools-flowui-2.2.1.jar:na]
	at io.jmix.datatoolsflowui.view.entityinspector.EntityInspectorDetailView.createContent(EntityInspectorDetailView.java:235) ~[jmix-datatools-flowui-2.2.1.jar:na]

Как я понимаю, проблема возникает из-за того, что в методе AbstractActionsHolderSupport#addActionInternal при замене действия индекс корректируется (index--), а в переопределенном методе ValuePickerActionSupport#addActionInternal используется исходное значение index.

Версия jmix - 2.2.3.

Добрый день,

Не могли бы Вы уточнить, что значит повторное добавление и как воспроизвести ошибку?

Глеб

Добавление действий с одинаковым id. В этом случае должна выполняться замена действия, судя по коду addActionInternal .

Тестовый проект, в котором воспроизводится проблема -.
jmix-issues-2.zip (305.9 КБ). Ошибка появляется при открытии экрана UserDetailView.

Спасибо за проект и за репорт проблемы. Завел задачу, поправим.

Глеб

1 симпатия