return;
continue;
    private void reportEntries(ISVNReporter reporter, SVNDirectory directory,            String dirPath, boolean reportAll, boolean recursive)            throws SVNException {        SVNEntries entries = directory.getEntries();        long baseRevision = entries.getEntry("", true).getRevision();        SVNExternalInfo[] externals = myWCAccess.addExternals(directory,                directory.getProperties("", false).getPropertyValue(                        SVNProperty.EXTERNALS));        for (int i = 0; externals != null && i < externals.length; i++) {            externals[i].setOldExternal(externals[i].getNewURL(), externals[i]                    .getNewRevision());        }        for (Iterator e = entries.entries(true); e.hasNext();) {            SVNEntry entry = (SVNEntry) e.next();            if ("".equals(entry.getName())) {                continue;            }            String path = "".equals(dirPath) ? entry.getName() : SVNPathUtil                    .append(dirPath, entry.getName());            if (entry.isDeleted() || entry.isAbsent()) {                if (!reportAll) {                    reporter.deletePath(path);                }                continue;            }            if (entry.isScheduledForAddition()) {                continue;            }            File file = directory.getFile(entry.getName());            boolean missing = !file.exists();            if (entry.isFile()) {                if (!reportAll) {                    // check svn:special files -> symlinks that could be                    // directory.                    boolean special = SVNFileUtil.isWindows                            && directory.getProperties(entry.getName(), false)                                    .getPropertyValue(SVNProperty.SPECIAL) != null;                    if ((special && !file.exists())                            || (!special && file.isDirectory())) {                        reporter.deletePath(path);                        continue;                    }                }                if (missing && !entry.isScheduledForDeletion()                        && !entry.isScheduledForReplacement()) {                    restoreFile(directory, entry.getName());                }                String url = entry.getURL();                String parentURL = entries                        .getPropertyValue("", SVNProperty.URL);                String expectedURL = SVNPathUtil.append(parentURL, SVNEncodingUtil.uriEncode(entry.getName()));                if (reportAll) {                    if (!url.equals(expectedURL)                            && !entry.isScheduledForAddition()                            && !entry.isScheduledForReplacement()) {                        SVNURL svnURL = SVNURL.parseURIEncoded(url);                        reporter.linkPath(svnURL,                                path, entry.getLockToken(),                                entry.getRevision(), false);                    } else {                        reporter.setPath(path, entry.getLockToken(), entry                                .getRevision(), false);                    }                } else if (!entry.isScheduledForReplacement()                        && !url.equals(expectedURL)) {                    // link path                    SVNURL svnURL = SVNURL.parseURIEncoded(url);                    reporter.linkPath(svnURL,                            path, entry.getLockToken(), entry.getRevision(),                            false);                } else if (entry.getRevision() != baseRevision                        || entry.getLockToken() != null) {                    reporter.setPath(path, entry.getLockToken(), entry                            .getRevision(), false);                }            } else if (entry.isDirectory() && recursive) {                if (missing                        || directory.getChildDirectory(entry.getName()) == null) {                    if (!reportAll) {                        reporter.deletePath(path);                    }                    return;                }                if (file.isFile()) {                    SVNErrorManager.error("svn: Cannot report information on directory '" + file + "': entry is obstructed with node of another type");                }                SVNDirectory childDir = directory.getChildDirectory(entry                        .getName());                SVNEntry childEntry = childDir.getEntries().getEntry("", true);                String url = childEntry.getURL();                if (reportAll) {                    if (!url.equals(entry.getURL())) {                        SVNURL svnURL = SVNURL.parseURIEncoded(url);                        reporter.linkPath(svnURL,                                path, childEntry.getLockToken(), childEntry                                        .getRevision(), childEntry                                        .isIncomplete());                    } else {                        reporter.setPath(path, childEntry.getLockToken(),                                childEntry.getRevision(), childEntry                                        .isIncomplete());                    }                } else if (!url.equals(entry.getURL())) {                    SVNURL svnURL = SVNURL.parseURIEncoded(url);                    reporter.linkPath(svnURL,                            path, childEntry.getLockToken(), childEntry                                    .getRevision(), childEntry.isIncomplete());                } else if (childEntry.getLockToken() != null                        || childEntry.getRevision() != baseRevision) {                    reporter                            .setPath(path, childEntry.getLockToken(),                                    childEntry.getRevision(), childEntry                                            .isIncomplete());                }                reportEntries(reporter, childDir, path, childEntry                        .isIncomplete(), recursive);            }        }    }