jcompagner wrote:that sounds like a threading problem (because you are in tableview where we get the data at the same with multiply threads)
Somehow that same RelatedValueList is hit i guess at the same time.
I wonder if that is reproducible that code didn't really change for years so this should be some corner case that is hitting this scenario
I'm not able to reproduce/debug, the message shows at random and not always on the same form, today I got this error in the Java console
nov 07, 2017 11:13:57 AM com.servoy.j2db.util.Debug warn
WARNING: startBundlingEvents() called twice without stopBundlingEvents(). This is not expected and might hide unwanted behavior...
nov 07, 2017 11:14:01 AM com.servoy.j2db.util.Debug error
SEVERE: Throwable
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at com.servoy.j2db.dataprocessing.RelatedValueList.fill(RelatedValueList.java:169)
at com.servoy.j2db.util.model.ComboModelListModelWrapper$SeparatorProcessingValueList.fill(ComboModelListModelWrapper.java:772)
at com.servoy.j2db.util.model.ComboModelListModelWrapper.fill(ComboModelListModelWrapper.java:176)
at com.servoy.j2db.smart.dataui.DataComboBox.setRecord(DataComboBox.java:1552)
at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:390)
at com.servoy.j2db.smart.dataui.DataRenderer.refreshRecord(DataRenderer.java:667)
at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:715)
at com.servoy.j2db.BasicFormController.valueChanged(BasicFormController.java:503)
at com.servoy.j2db.BasicFormController.tableChanged(BasicFormController.java:454)
at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireTableModelEvent(TableAndListEventDelegate.java:76)
at com.servoy.j2db.dataprocessing.SwingFoundSet.fireTableModelEvent(SwingFoundSet.java:268)
at com.servoy.j2db.smart.dataui.CellAdapter.fireModificationEvent(CellAdapter.java:1351)
at com.servoy.j2db.smart.dataui.CellAdapter.valueChanged(CellAdapter.java:1733)
at com.servoy.j2db.dataprocessing.DataAdapterList.valueChanged(DataAdapterList.java:466)
at com.servoy.j2db.dataprocessing.Record.fireJSModificationEvent(Record.java:424)
at com.servoy.j2db.dataprocessing.Record.notifyChange(Record.java:872)
at com.servoy.j2db.dataprocessing.Row.fireNotifyChange(Row.java:96)
at com.servoy.j2db.dataprocessing.Row.setValue(Row.java:378)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:227)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:185)
at com.servoy.j2db.smart.dataui.CellAdapter$5.run(CellAdapter.java:1185)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
nov 07, 2017 11:14:01 AM com.servoy.j2db.util.Debug error
SEVERE: Throwable
java.lang.IllegalStateException: Cannot bundle 'added' event; intervals cannot be merged
at com.servoy.j2db.util.model.OptimizedDefaultListModel.fireIntervalAdded(OptimizedDefaultListModel.java:143)
at javax.swing.DefaultListModel.addElement(Unknown Source)
at com.servoy.j2db.dataprocessing.RelatedValueList.fillFromFoundset(RelatedValueList.java:289)
at com.servoy.j2db.dataprocessing.RelatedValueList.fill(RelatedValueList.java:185)
at com.servoy.j2db.util.model.ComboModelListModelWrapper$SeparatorProcessingValueList.fill(ComboModelListModelWrapper.java:772)
at com.servoy.j2db.util.model.ComboModelListModelWrapper.fill(ComboModelListModelWrapper.java:176)
at com.servoy.j2db.smart.dataui.DataComboBox.setRecord(DataComboBox.java:1552)
at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:390)
at com.servoy.j2db.smart.dataui.DataRenderer.refreshRecord(DataRenderer.java:667)
at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:715)
at com.servoy.j2db.BasicFormController.valueChanged(BasicFormController.java:503)
at com.servoy.j2db.BasicFormController.tableChanged(BasicFormController.java:454)
at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireTableModelEvent(TableAndListEventDelegate.java:76)
at com.servoy.j2db.dataprocessing.SwingFoundSet.fireTableModelEvent(SwingFoundSet.java:268)
at com.servoy.j2db.smart.dataui.CellAdapter.fireModificationEvent(CellAdapter.java:1351)
at com.servoy.j2db.smart.dataui.CellAdapter.valueChanged(CellAdapter.java:1733)
at com.servoy.j2db.dataprocessing.DataAdapterList.valueChanged(DataAdapterList.java:466)
at com.servoy.j2db.dataprocessing.Record.fireJSModificationEvent(Record.java:424)
at com.servoy.j2db.dataprocessing.Record.notifyChange(Record.java:872)
at com.servoy.j2db.dataprocessing.Row.fireNotifyChange(Row.java:96)
at com.servoy.j2db.dataprocessing.Row.setValue(Row.java:378)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:227)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:185)
at com.servoy.j2db.smart.dataui.CellAdapter$5.run(CellAdapter.java:1185)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
nov 07, 2017 11:14:01 AM com.servoy.j2db.util.Debug error
SEVERE: Throwable
java.lang.IllegalStateException: Cannot bundle 'added' event; intervals cannot be merged
at com.servoy.j2db.util.model.OptimizedDefaultListModel.fireIntervalAdded(OptimizedDefaultListModel.java:143)
at javax.swing.DefaultListModel.addElement(Unknown Source)
at com.servoy.j2db.dataprocessing.RelatedValueList.fillFromFoundset(RelatedValueList.java:289)
at com.servoy.j2db.dataprocessing.RelatedValueList.fill(RelatedValueList.java:185)
at com.servoy.j2db.util.model.ComboModelListModelWrapper$SeparatorProcessingValueList.fill(ComboModelListModelWrapper.java:772)
at com.servoy.j2db.util.model.ComboModelListModelWrapper.fill(ComboModelListModelWrapper.java:176)
at com.servoy.j2db.smart.dataui.DataComboBox.setRecord(DataComboBox.java:1552)
at com.servoy.j2db.dataprocessing.DataAdapterList.setRecord(DataAdapterList.java:390)
at com.servoy.j2db.smart.dataui.DataRenderer.refreshRecord(DataRenderer.java:667)
at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:715)
at com.servoy.j2db.BasicFormController.valueChanged(BasicFormController.java:503)
at com.servoy.j2db.BasicFormController.tableChanged(BasicFormController.java:454)
at com.servoy.j2db.dataprocessing.TableAndListEventDelegate.fireTableModelEvent(TableAndListEventDelegate.java:76)
at com.servoy.j2db.dataprocessing.SwingFoundSet.fireTableModelEvent(SwingFoundSet.java:268)
at com.servoy.j2db.smart.dataui.CellAdapter.fireModificationEvent(CellAdapter.java:1351)
at com.servoy.j2db.smart.dataui.CellAdapter.valueChanged(CellAdapter.java:1733)
at com.servoy.j2db.dataprocessing.DataAdapterList.valueChanged(DataAdapterList.java:466)
at com.servoy.j2db.dataprocessing.Record.fireJSModificationEvent(Record.java:424)
at com.servoy.j2db.dataprocessing.Record.notifyChange(Record.java:872)
at com.servoy.j2db.dataprocessing.Row.fireNotifyChange(Row.java:96)
at com.servoy.j2db.dataprocessing.Row.setValue(Row.java:378)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:227)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:185)
at com.servoy.j2db.smart.dataui.CellAdapter$5.run(CellAdapter.java:1185)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
we use Servoy version 8.1.3 -releaseNumber 3033
Regards,
Peter