DebugLog.log("no entry " + file);
    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;        DebugLog.log("creating status for " + file);        DebugLog.log("path kind: " + pathKind);        if (entry == null) {            DebugLog.log("no entry " + file);            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, null, null, null);        }        SVNStatusType textStatus = SVNStatusType.STATUS_NORMAL;        SVNStatusType propStatus = SVNStatusType.STATUS_NONE;        boolean isSwitched = false;        boolean isLocked = false;        if (entry.isDirectory()) {            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) {            if (entry.isFile() && !entry.getName().equals(PathUtil.decode(PathUtil.tail(entry.getURL())))) {                isSwitched = true;            }            if (!isSwitched && !PathUtil.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 = props.getPropertyValue(SVNProperty.SPECIAL) != null;            DebugLog.log("special : " + special);            boolean textModified = false;            if (entry.isFile() && 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 (entry.isDirectory() && pathKind == SVNFileType.DIRECTORY) {                isLocked = entryDir.getFile(".svn/lock", false).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(),                TimeUtil.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(), false);        }        if (entry.getConflictNew() != null) {            conflictNew = entryDir.getFile(entry.getConflictNew(), false);        }        if (entry.getConflictWorking() != null) {            conflictWrk = entryDir.getFile(entry.getConflictWorking(), false);        }        if (entry.getPropRejectFile() != null) {            propReject = entryDir.getFile(entry.getPropRejectFile(), false);        }        return new SVNStatus(entry.getURL(), file, entry.getKind(),                SVNRevision.create(entry.getRevision()), SVNRevision.create(entry.getCommittedRevision()),                TimeUtil.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()), null, localLock,                allEntryProperties);    }