Добрый день,
Столкнулись с ошибкой 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.