Given a sequence of add, remove, add events on an EntityList, the EntityListView can end up showing incorrect items.
For example:
entityList.add(a);
entityList.remove(a);
entityList.add(a);
The root cause of this appears to be that after adding item a, the wrapper in EntityListView is not fully updated; the new component is added to the changeQueue, but is not yet returned when iterating through elements in EntityListView.handleEntityRemoved
To resolve this, I think that EntityListView.handleEntityRemoved should instead call wrapper.getChildrenAsList(true) to include the queued changes when removing items.
Given a sequence of add, remove, add events on an
EntityList, theEntityListViewcan end up showing incorrect items.For example:
The root cause of this appears to be that after adding item
a, thewrapperinEntityListViewis not fully updated; the new component is added to thechangeQueue, but is not yet returned when iterating through elements inEntityListView.handleEntityRemovedTo resolve this, I think that
EntityListView.handleEntityRemovedshould instead callwrapper.getChildrenAsList(true)to include the queued changes when removing items.