return new SVNStatus(entry.getURL(), file, entry.getKind(), SVNRevision
return new SVNStatus(entry.getSVNURL(), file, entry.getKind(), SVNRevision
    private SVNStatus createStatus(String path, File file,            SVNDirectory entryDir, SVNEntry parentEntry,            SVNEntry entry /* this could be dir entry in parent */,            boolean isIgnored, SVNFileType pathKind, Map allEntryProperties)            throws SVNException {        pathKind = pathKind == null || pathKind == SVNFileType.UNKNOWN ? SVNFileType                .getType(file)                : pathKind;        SVNLock remoteLock = null;        if (path != null && myAnchorStatus != null                && myAnchorStatus.getURL() != null) {            remoteLock = getRepositoryLock(path);        }        if (entry == null) {            SVNStatusType textStatus = SVNStatusType.STATUS_NONE;            if (pathKind != SVNFileType.NONE) {                textStatus = isIgnored ? SVNStatusType.STATUS_IGNORED                        : SVNStatusType.STATUS_UNVERSIONED;            }            return new SVNStatus(null, file, null, null, null, null, null,                    textStatus, SVNStatusType.STATUS_NONE,                    SVNStatusType.STATUS_NONE, SVNStatusType.STATUS_NONE,                    false, false, false, null, null, null, null, null, null,                    remoteLock, null, null);        }        SVNStatusType textStatus = SVNStatusType.STATUS_NORMAL;        SVNStatusType propStatus = SVNStatusType.STATUS_NONE;        boolean isSwitched = false;        boolean isLocked = false;        boolean isDir = entry.isDirectory();        if (isDir) {            if (pathKind == SVNFileType.DIRECTORY) {                if (!SVNWCAccess.isVersionedDirectory(file)) {                    textStatus = SVNStatusType.STATUS_OBSTRUCTED;                }            } else if (pathKind != SVNFileType.NONE) {                textStatus = SVNStatusType.STATUS_OBSTRUCTED;            }        }        if (parentEntry != null && entry.getURL() != null                && parentEntry.getURL() != null) {            String realName = entry.getName();            if ("".equals(entry.getName())) {                realName = file.getName();            }            if (!realName.equals(SVNEncodingUtil.uriDecode(SVNPathUtil.tail(entry.getURL())))) {                isSwitched = true;            }            if (!isSwitched && !SVNPathUtil.removeTail(entry.getURL()).equals(parentEntry.getURL())) {                isSwitched = true;            }        }        if (textStatus != SVNStatusType.OBSTRUCTED) {            SVNProperties props = entryDir.getProperties(entry.getName(), false);            if (props != null && !props.isEmpty()) {                propStatus = SVNStatusType.STATUS_NORMAL;            }            boolean propsModified = entryDir.hasPropModifications(entry.getName());            boolean special = !SVNFileUtil.isWindows && !isDir && props.getPropertyValue(SVNProperty.SPECIAL) != null;            boolean textModified = false;            if (!isDir && special == (pathKind == SVNFileType.SYMLINK)) {                textModified = entryDir.hasTextModifications(entry.getName(), false);            }            if (propsModified) {                propStatus = SVNStatusType.STATUS_MODIFIED;            }            if (textModified) {                textStatus = SVNStatusType.STATUS_MODIFIED;            }            if (entry.getConflictNew() != null                    || entry.getConflictOld() != null                    || entry.getConflictWorking() != null) {                textStatus = SVNStatusType.STATUS_CONFLICTED;            }            if (entry.getPropRejectFile() != null) {                propStatus = SVNStatusType.STATUS_CONFLICTED;            }            if (entry.isScheduledForAddition()) {                textStatus = SVNStatusType.STATUS_ADDED;                propStatus = SVNStatusType.STATUS_NONE;            } else if (entry.isScheduledForDeletion()) {                textStatus = SVNStatusType.STATUS_DELETED;                propStatus = SVNStatusType.STATUS_NONE;            } else if (entry.isScheduledForReplacement()) {                textStatus = SVNStatusType.STATUS_REPLACED;                propStatus = SVNStatusType.STATUS_NONE;            }            if (entry.isIncomplete()                    && textStatus != SVNStatusType.STATUS_ADDED                    && textStatus != SVNStatusType.STATUS_DELETED) {                textStatus = SVNStatusType.STATUS_INCOMPLETE;            } else if (pathKind == SVNFileType.NONE) {                if (textStatus != SVNStatusType.STATUS_DELETED) {                    textStatus = SVNStatusType.STATUS_MISSING;                }            } else if (!SVNFileType.equals(pathKind, entry.getKind())) {                textStatus = SVNStatusType.STATUS_OBSTRUCTED;            } else if (special != (pathKind == SVNFileType.SYMLINK)) {                textStatus = SVNStatusType.STATUS_OBSTRUCTED;            }            if (isDir && pathKind == SVNFileType.DIRECTORY) {                isLocked = entryDir.getFile(".svn/lock").exists();            }        }        if (!myIsReportAll) {            if ((textStatus == SVNStatusType.STATUS_NONE || textStatus == SVNStatusType.STATUS_NORMAL)                    && (propStatus == SVNStatusType.STATUS_NONE || propStatus == SVNStatusType.STATUS_NORMAL)                    && !isLocked && !isSwitched && entry.getLockToken() == null) {                return null;            }        }        SVNLock localLock = null;        if (entry.getLockToken() != null) {            localLock = new SVNLock(null, entry.getLockToken(), entry.getLockOwner(), entry.getLockComment(),                     SVNTimeUtil.parseDate(entry.getLockCreationDate()), null);        }        File conflictOld = null;        File conflictNew = null;        File conflictWrk = null;        File propReject = null;        if (entry.getConflictOld() != null) {            conflictOld = entryDir.getFile(entry.getConflictOld());        }        if (entry.getConflictNew() != null) {            conflictNew = entryDir.getFile(entry.getConflictNew());        }        if (entry.getConflictWorking() != null) {            conflictWrk = entryDir.getFile(entry.getConflictWorking());        }        if (entry.getPropRejectFile() != null) {            propReject = entryDir.getFile(entry.getPropRejectFile());        }        return new SVNStatus(entry.getURL(), file, entry.getKind(), SVNRevision                .create(entry.getRevision()),                entry.getCommittedRevision() >= 0 ? SVNRevision.create(entry.getCommittedRevision()) : null,                         SVNTimeUtil.parseDate(entry.getCommittedDate()),                entry.getAuthor(), textStatus, propStatus,                SVNStatusType.STATUS_NONE, SVNStatusType.STATUS_NONE, isLocked,                entry.isCopied(), isSwitched, conflictNew, conflictOld,                conflictWrk, propReject, entry.getCopyFromURL(), SVNRevision.create(entry.getCopyFromRevision()),                 remoteLock, localLock, allEntryProperties);    }