/** Removes the objects from the children. */ private void updateRemove(Node[] current, Set<Entry> toRemove) { assert Children.MUTEX.isWriteAccess(); List<Node> nodes = new LinkedList<Node>(); ChildrenArray cha = array.get(); for (Entry en : toRemove) { Info info = map.remove(en); checkInfo(info, en, null, map); nodes.addAll(info.nodes(true)); cha.remove(info); } // modify the current set of entries entries.removeAll(toRemove); checkConsistency(); if (LOGGER.isLoggable(Level.FINER)) { LOGGER.finer("Current : " + this.entries); LOGGER.finer("Removing: " + toRemove); } // empty the list of nodes so it has to be recreated again if (!nodes.isEmpty()) { clearNodes(); notifyRemove(nodes, current); } }