Vaadin-将组件添加到VerticalLayout时发生ConcurrentModificationException

问题描述 投票:0回答:1

Vaadin 7.7.10]中,我有VerticalLayout和几个组件(每个组件都由内部的更多组件组成)。我正在尝试通过。addComponent()函数添加它们,但是其中之一会导致错误:

Caused by: java.util.ConcurrentModificationException
    at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)[:1.7.0_79]
    at java.util.LinkedList$ListItr.next(LinkedList.java:886)[:1.7.0_79]
    at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1067)[:1.7.0_79]
    at com.vaadin.server.AbstractClientConnector.attach(AbstractClientConnector.java:623)
    at com.vaadin.ui.AbstractComponent.attach(AbstractComponent.java:684)
    at com.vaadin.ui.AbstractComponent.setParent(AbstractComponent.java:587)
    at com.vaadin.ui.AbstractComponentContainer.addComponent(AbstractComponentContainer.java:214)
    at com.vaadin.ui.AbstractOrderedLayout.addComponent(AbstractOrderedLayout.java:97)

此错误之前,我还看到了几个Vaadin服务器警告:

Tried to unregister XY (num) which is not registered

但是,仅在服务器启动后第一次显示该页面时才会发生。当我再试一次时,一切正常。

似乎我缺少一些在第一次创建组件后正确初始化组件的方法-一种方法,下次加载包装View

时会自动调用该方法。但是到目前为止,我不知道应该是什么?

在Vaadin 7.7.10中,我具有VerticalLayout和几个组件(每个组件都由内部的更多组件组成)。我试图通过.addComponent()函数添加它们,但是其中之一引起了错误:...

java vaadin vaadin7
1个回答
0
投票

所以我没有找到错误的确切来源,但是我找到了一种避免错误的方法。帮助的是在通过.setValue()方法添加之前,显式调用组件内部的每个Field方法。

© www.soinside.com 2019 - 2024. All rights reserved.