@Override protected void updateStatus(Attributes attributes, PortableStatus status, Lock.Builder lock) throws SAXException { final String path = attributes.getValue("path"); assertSAX(path != null); final File file = SvnUtil.resolvePath(myBase, path); status.setFile(file); final boolean exists = file.exists(); if (exists) { status.setKind(exists, NodeKind.from(file.isDirectory())); } else { // this is a hack. This is done so because of strange svn native client output: /* c:\TestProjects\sortedProjects\Subversion\local\withExt82420\mod4>svn st --xml <?xml version="1.0" encoding="UTF-8"?> <status> <target path="."> <entry path="mod4"> <wc-status props="none" item="unversioned"> </wc-status> </entry> </target> </status> while c:\TestProjects\sortedProjects\Subversion\local\withExt82420\mod4>dir Volume in drive C has no label. Volume Serial Number is B4EA-B379 Directory of c:\TestProjects\sortedProjects\Subversion\local\withExt82420\mod4 03/09/2012 05:30 PM <DIR> . 03/09/2012 05:30 PM <DIR> .. 03/09/2012 05:30 PM 437 mod4.iml 03/09/2012 05:30 PM <DIR> src and no "mod4" under */ final StatusType ns = status.getNodeStatus(); if (myBase.getName().equals(path) && !StatusType.MISSING.equals(ns) && !StatusType.STATUS_DELETED.equals(ns)) { status.setKind(true, NodeKind.DIR); status.setFile(myBase); status.setPath(""); return; } status.setKind(exists, NodeKind.UNKNOWN); } status.setPath(path); }