Bug 784360 - java.util.ConcurrentModificationException: at java.util.HashMap$HashIterator.nextEntry(HashMap.java) at org.mozilla.gecko.DoorHangerPopup.onTabChanged(DoorHangerPopup.java). r=wesj

This commit is contained in:
Margaret Leibovic 2012-08-29 16:42:15 -07:00
parent 110855b2d1
commit dc409f13dc

View File

@ -95,10 +95,15 @@ public class DoorHangerPopup extends PopupWindow
public void onTabChanged(Tab tab, Tabs.TabEvents msg, Object data) {
switch(msg) {
case CLOSED:
// Remove any doorhangers for a tab when it's closed
// Remove any doorhangers for a tab when it's closed (make
// a temporary set to avoid a ConcurrentModificationException)
HashSet<DoorHanger> doorHangersToRemove = new HashSet<DoorHanger>();
for (DoorHanger dh : mDoorHangers) {
if (dh.getTabId() == tab.getId())
removeDoorHanger(dh);
doorHangersToRemove.add(dh);
}
for (DoorHanger dh : doorHangersToRemove) {
removeDoorHanger(dh);
}
break;