file = new File(entryName);
file = new File(dir.getRoot(), entryName);
    protected void getDirStatus(SVNEntry parentEntry, SVNAdminArea dir, String entryName,             boolean descend, boolean getAll, boolean noIgnore, Collection ignorePatterns, boolean skipThisDir,            ISVNStatusHandler handler) throws SVNException {        myWCAccess.checkCancelled();                Map childrenFiles = getChildrenFiles(dir.getRoot());        SVNEntry dirEntry = myWCAccess.getEntry(dir.getRoot(), false);        String externals = dir.getProperties("").getPropertyValue(SVNProperty.EXTERNALS);        if (externals != null) {            SVNExternalInfo[] externalsInfo = SVNWCAccess.parseExternals(dir.getRelativePath(myAdminInfo.getAnchor()), externals);            for (int i = 0; i < externalsInfo.length; i++) {                SVNExternalInfo external = externalsInfo[i];                myExternalsMap.put(external.getPath(), external);            }        }        if (entryName != null) {            File file = (File) childrenFiles.get(entryName);            SVNEntry entry = dir.getEntry(entryName, false);            if (entry != null) {                SVNFileType fileType = SVNFileType.getType(file);                boolean special = fileType == SVNFileType.SYMLINK;                SVNNodeKind fileKind = SVNFileType.getNodeKind(fileType);                handleDirEntry(dir, entryName, dirEntry, entry,                         fileKind, special, descend, getAll, noIgnore, handler);            } else {                if (ignorePatterns == null) {                    ignorePatterns = getIgnorePatterns(dir, myGlobalIgnores);                }                if (file == null) {                    file = new File(entryName);                }                sendUnversionedStatus(file, entryName, SVNNodeKind.NONE, false, dir, ignorePatterns, noIgnore, handler);            }            return;        }        // iterate over files.        childrenFiles = new TreeMap(childrenFiles);        for (Iterator files = childrenFiles.keySet().iterator(); files.hasNext();) {            String fileName = (String) files.next();            if (dir.getEntry(fileName, false) != null || SVNFileUtil.getAdminDirectoryName().equals(fileName)) {                continue;            }            if (ignorePatterns == null) {                ignorePatterns = getIgnorePatterns(dir, myGlobalIgnores);            }            File file = (File) childrenFiles.get(fileName);            sendUnversionedStatus(file, fileName, SVNNodeKind.NONE, false, dir, ignorePatterns, noIgnore, handler);        }        if (!skipThisDir) {            SVNStatus status = assembleStatus(dir.getRoot(), dir, dirEntry, parentEntry,                     SVNNodeKind.DIR, false, getAll, false);            if (status != null && handler != null) {                handler.handleStatus(status);            }        }        for(Iterator entries = dir.entries(false); entries.hasNext();) {            SVNEntry entry = (SVNEntry) entries.next();            if ("".equals(entry.getName())) {                continue;            }            File file = (File) childrenFiles.get(entry.getName());            SVNFileType fileType = SVNFileType.getType(file);            boolean special = fileType == SVNFileType.SYMLINK;            SVNNodeKind fileKind = SVNFileType.getNodeKind(fileType);            handleDirEntry(dir, entry.getName(), dirEntry, entry,                     fileKind, special, descend, getAll, noIgnore, handler);        }    }