]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #4292 for ContainerHierarchicalWrapper
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 9 Mar 2010 16:26:44 +0000 (16:26 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 9 Mar 2010 16:26:44 +0000 (16:26 +0000)
svn changeset:11728/svn branch:6.3

src/com/vaadin/data/util/ContainerHierarchicalWrapper.java

index e692f11498b9f2fefa6d236271c0a26810c311b9..03be24b669f0fee19d094c4b01ce295b6849fab7 100644 (file)
@@ -181,6 +181,14 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
      */
     private void removeFromHierarchyWrapper(Object itemId) {
 
+        LinkedList<Object> oprhanedChildren = children.remove(itemId);
+        if (oprhanedChildren != null) {
+            for (Object object : oprhanedChildren) {
+                // make orphaned children root nodes
+                setParent(object, null);
+            }
+        }
+
         if (isRoot(itemId)) {
             roots.remove(itemId);
         }
@@ -192,7 +200,6 @@ public class ContainerHierarchicalWrapper implements Container.Hierarchical,
             }
         }
         parent.remove(itemId);
-        children.remove(itemId);
         noChildrenAllowed.remove(itemId);
     }