【问题标题】:Vaadin - ConcurrentModificationException while adding component to VerticalLayoutVaadin - 将组件添加到 VerticalLayout 时出现 ConcurrentModificationException
【发布时间】:2019-12-13 23:20:02
【问题描述】:

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 时会自动调用该方法。但是到目前为止我不知道它应该是什么?

【问题讨论】:

  • 请出示相关代码,我们的向导刚出门

标签: java vaadin vaadin7


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-07-19
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多