long revNumber = getRevisionNumber(url, rev);
long revNumber = getRevisionNumber(rev, repos, null);
    private void doGetRemoteProperty(String url, String path,            SVNRepository repos, String propName, SVNRevision rev,            boolean recursive, ISVNPropertyHandler handler) throws SVNException {        long revNumber = getRevisionNumber(url, rev);        SVNNodeKind kind = repos.checkPath(path, revNumber);        Map props = new HashMap();        if (kind == SVNNodeKind.DIR) {            Collection children = repos.getDir(path, revNumber, props,                    recursive ? new ArrayList() : null);            if (propName != null) {                String value = (String) props.get(propName);                if (value != null) {                    handler.handleProperty(url, new SVNPropertyData(propName,                            value));                }            } else {                for (Iterator names = props.keySet().iterator(); names                        .hasNext();) {                    String name = (String) names.next();                    if (name.startsWith(SVNProperty.SVN_ENTRY_PREFIX)                            || name.startsWith(SVNProperty.SVN_WC_PREFIX)) {                        continue;                    }                    String value = (String) props.get(name);                    handler.handleProperty(url,                            new SVNPropertyData(name, value));                }            }            if (recursive) {                for (Iterator entries = children.iterator(); entries.hasNext();) {                    SVNDirEntry child = (SVNDirEntry) entries.next();                    String childURL = SVNPathUtil.append(url, SVNEncodingUtil.uriEncode(child.getName()));                    String childPath = "".equals(path) ? child.getName()                            : SVNPathUtil.append(path, child.getName());                    doGetRemoteProperty(childURL, childPath, repos, propName,                            rev, recursive, handler);                }            }        } else if (kind == SVNNodeKind.FILE) {            repos.getFile(path, revNumber, props, null);            if (propName != null) {                String value = (String) props.get(propName);                if (value != null) {                    handler.handleProperty(url, new SVNPropertyData(propName,                            value));                }            } else {                for (Iterator names = props.keySet().iterator(); names                        .hasNext();) {                    String name = (String) names.next();                    if (name.startsWith(SVNProperty.SVN_ENTRY_PREFIX)                            || name.startsWith(SVNProperty.SVN_WC_PREFIX)) {                        continue;                    }                    String value = (String) props.get(name);                    handler.handleProperty(url,                            new SVNPropertyData(name, value));                }            }        }    }