node.traverse(conf, dep);
    private void doFetchDependencies(IvyNode node, String conf) {        Configuration c = node.getConfiguration(conf);        if (c == null) {            Message.warn("configuration not found '"+conf+"' in "+node.getResolvedId()+": ignoring");            if (node.getParent() != null) {                Message.warn("it was required from "+node.getParent().getResolvedId());            }            return;        }        // we handle the case where the asked configuration extends others:        // we have to first fetch the extended configurations                // first we check if this is the actual requested conf (not an extended one)        boolean requestedConfSet = false;        if (node.getRequestedConf()==null) {            node.setRequestedConf(conf);            requestedConfSet = true;        }        // now let's recurse in extended confs        String[] extendedConfs = c.getExtends();        if (extendedConfs.length > 0) {            node.updateConfsToFetch(Arrays.asList(extendedConfs));        }        for (int i = 0; i < extendedConfs.length; i++) {            fetchDependencies(node, extendedConfs[i], false);        }                // now we can actually resolve this configuration dependencies        DependencyDescriptor dd = node.getDependencyDescriptor(node.getParent());        if (!isDependenciesFetched(node, conf) && (dd == null || node.isTransitive())) {            Collection dependencies = node.getDependencies(conf, true);            for (Iterator iter = dependencies.iterator(); iter.hasNext();) {                IvyNode dep = (IvyNode)iter.next();                if (dep.isCircular()) {                    continue;                }                String[] confs = dep.getRequiredConfigurations(node, conf);                for (int i = 0; i < confs.length; i++) {                    fetchDependencies(dep, confs[i], true);                }                // if there are still confs to fetch (usually because they have                // been updated when evicting another module), we fetch them now                confs = dep.getConfsToFetch();                for (int i = 0; i < confs.length; i++) {                    fetchDependencies(dep, confs[i], true);                }            }        }        // we have finiched with this configuration, if it was the original requested conf        // we can clean it now        if (requestedConfSet) {        	node.setRequestedConf(null);        }            }