Browse Source

Fix VAbstractOrderedLayout widget removal race condition (#18703)

Removing a widget that got moved to another layout occasionally caused
slot to lose track of related widget. As a result the layout never
created a new slot when the same widget is put back in there.

Change-Id: I0d8793324b8a5ac8a06aa2803ac8de22b90b7545
tags/7.6.0.beta1^0
Teemu Suo-Anttila 8 years ago
parent
commit
1ee652d48c

+ 4
- 3
client/src/com/vaadin/client/ui/orderedlayout/VAbstractOrderedLayout.java View File

@@ -209,8 +209,10 @@ public class VAbstractOrderedLayout extends FlowPanel {
* @return
*/
public void removeWidget(Widget widget) {
Slot slot = widgetToSlot.get(widget);
removeSlot(slot);
Slot slot = widgetToSlot.remove(widget);
if (slot != null) {
removeSlot(slot);
}
}

/**
@@ -226,7 +228,6 @@ public class VAbstractOrderedLayout extends FlowPanel {
*/
protected void removeSlot(Slot slot) {
remove(slot);
widgetToSlot.remove(slot.getWidget());
}

/**

Loading…
Cancel
Save