2

这看起来很简单,但由于某种原因,使用Vaadin 7.0.7时,ListSelect 在获取要显示的数据时似乎被标记为脏。

代码是

....
FieldGroup group = new FieldGroup(bean);
SQLContainer c = new SQLContainer(new TableQuery(null, "USER", "SYSTEM", pool, new OracleGenerator()));
ListSelect options = new ListSelect("System", c);
group.bind(options, "system");
....

但这似乎会引发错误,当 ListSelect 正在获取 ID 时,因为 SQL 容器在有更新时似乎被标记为脏

java.lang.IllegalStateException: A connector should not be marked as dirty while a response is being written.
at com.vaadin.ui.ConnectorTracker.markDirty(ConnectorTracker.java:346)
at com.vaadin.server.AbstractClientConnector.markAsDirty(AbstractClientConnector.java:139)
at com.vaadin.ui.AbstractSelect.fireItemSetChange(AbstractSelect.java:1679)
at com.vaadin.ui.AbstractSelect.containerItemSetChange(AbstractSelect.java:1646)
at com.vaadin.data.util.sqlcontainer.SQLContainer.fireContentsChange(SQLContainer.java:1585)
at com.vaadin.data.util.sqlcontainer.SQLContainer.refresh(SQLContainer.java:877)
at com.vaadin.data.util.sqlcontainer.SQLContainer.updateCount(SQLContainer.java:1129)
at com.vaadin.data.util.sqlcontainer.SQLContainer.getItemIds(SQLContainer.java:326)
at com.vaadin.ui.AbstractSelect.getItemIds(AbstractSelect.java:728)
at com.vaadin.ui.AbstractSelect.paintContent(AbstractSelect.java:367)
at com.vaadin.ui.ListSelect.paintContent(ListSelect.java:124)
at com.vaadin.server.LegacyPaint.paint(LegacyPaint.java:65)

有没有人找到解决这个问题的方法?

4

0 回答 0