Random error

Discuss all problems you have with Servoy here. It might help to mention the Servoy version and Operating System version you are using

Random error

Postby Peter de Groot » Mon Oct 30, 2017 1:47 pm

Hi all,

we keep getting randomly the error below,

okt 30, 2017 12:36:53 PM 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.SwingRelatedFoundSet.fireTableModelEvent(SwingRelatedFoundSet.java:269)
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 have no idea what this means, we're using Servoy 8.1.3


Regards,
Peter
User avatar
Peter de Groot
 
Posts: 215
Joined: Thu Jan 10, 2008 8:38 pm
Location: Not sure...

Re: Random error

Postby jcompagner » Mon Nov 06, 2017 3:22 pm

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
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Random error

Postby Peter de Groot » Tue Nov 07, 2017 12:23 pm

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
User avatar
Peter de Groot
 
Posts: 215
Joined: Thu Jan 10, 2008 8:38 pm
Location: Not sure...

Re: Random error

Postby jcompagner » Wed Nov 29, 2017 10:35 am

can you create a case with those stack traces?
As i said that code is all quite old, not really touched (maybe for years) so this is quite a specific scenario
That in a tableview i think you have a combobox there (or do you have a combo box around the tableview let say the tableview is in a tabpanel or in the header there is a combobox?)
And because of the a change that a column/cell in a tableview gets (calculation or related field) it triggers again a change even in the system that triggers a refill of a related valuelist of a combobox.
And i think that same related valuelist is triggered multiply times for different cells

So it would be nice to know what the setup is of the form where this goes wrong, what kind of tableview are you showing there, what kind of data in the columns (related/calculated?) and is there anything else shown on that form that is a combobox with a related valuelist.
(or is that also shown in the tableview itself?)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet


Return to Discuss possible Issues and Bugs

Who is online

Users browsing this forum: Google [Bot] and 6 guests