While trying to use GWT's ListEditor system I was unable to find a working example where the UI of each item in the list had a delete/remove button.
The examples I found were all like this one[1] and have an EditorSource.create() implementation creates the per-item Editor and appears to wire up a handler to remove the item from the underlying list via listEditor.getList().remove(index).
However, the anonymous implementation of the deletion handler closes around the value of index at the time of the sub-editor's creation, this leads to IndexOutOfBoundExceptions or the wrong item being removed as each removal changes the index of all items that come after it.
I pulled my hair out for a while trying to see what I was missing in the examples that kept that from happening, but from what I could tell they really did all have that problem, so while the fix is fairly simple, I will still post it here so there is at least one example people can find that does item removal correctly.
[1] I think all the examples I found were all derived from the one I linked, although that one in particular had a little more logic in remove() and may have been doing something to avoid the problem like correcting the list order somehow, I haven't dug into the other code in that project.
The following is a minimal
ListEditorexample that corrects the problem found in other examples.