bumpDirectory(child, childURL);
if (child != null) { bumpDirectory(child, childURL); } else { SVNDebugLog.logInfo("svn: Directory object is null in bump directories method"); }
    private void bumpDirectory(SVNDirectory dir, String url) throws SVNException {        SVNEntries entries = dir.getEntries();        boolean save = bumpEntry(entries, entries.getEntry("", true), url, myTargetRevision, false);        Map childDirectories = new HashMap();        for (Iterator ents = entries.entries(true); ents.hasNext();) {            SVNEntry entry = (SVNEntry) ents.next();            if ("".equals(entry.getName())) {                continue;            }            String childURL = url != null ? SVNPathUtil.append(url, SVNEncodingUtil.uriEncode(entry.getName())) : null;            if (entry.getKind() == SVNNodeKind.FILE) {                save |= bumpEntry(entries, entry, childURL, myTargetRevision, true);            } else if (myIsRecursive && entry.getKind() == SVNNodeKind.DIR) {                SVNDirectory childDirectory = dir.getChildDirectory(entry.getName());                if (!entry.isScheduledForAddition() && (childDirectory == null || !childDirectory.isVersioned())) {                    myWCAccess.handleEvent(SVNEventFactory.createUpdateDeleteEvent(myWCAccess, dir, entry));                    entries.deleteEntry(entry.getName());                    save = true;                } else {                    // schedule for recursion, map of dir->url                    childDirectories.put(childDirectory, childURL);                }            }        }        if (save) {            entries.save(true);        }        for (Iterator children = childDirectories.keySet().iterator(); children.hasNext();) {            SVNDirectory child = (SVNDirectory) children.next();            String childURL = (String) childDirectories.get(child);            bumpDirectory(child, childURL);        }    }