synchronized(node) {
synchronized(node.lock) {
    private void purge() throws BackingStoreException    {		// Make sure all children have an AbstractPreferences node in cache		String children[] = childrenNamesSpi();		for (int i = 0; i < children.length; i++) {			if (childCache.get(children[i]) == null)				childCache.put(children[i], childSpi(children[i]));		}		// purge all children		Iterator i = childCache.values().iterator();		while (i.hasNext()) {			AbstractPreferences node = (AbstractPreferences) i.next();            synchronized(node) {				node.purge();			}		}		// Cache is empty now		childCache.clear();		// remove this node		removeNodeSpi();		removed = true;		// XXX - check for listeners	}