public void properties(String path, Revision revision, Revision pegRevision, int depth, String[] changelists, ProplistCallback callback) throws ClientException { if (path == null || callback == null) { return; } final PropertyData[] properties = properties(path, revision, pegRevision, JavaHLObjectFactory.getSVNDepth(depth), changelists); final Map<String, Map<String, byte[]>> propsMap = new TreeMap<String, Map<String,byte[]>>(SVNPathUtil.PATH_COMPARATOR); for (int i = 0; i < properties.length; i++) { final String propertyPath = properties[i].getPath(); if (!propsMap.containsKey(propertyPath)) { propsMap.put(propertyPath, new HashMap<String, byte[]>()); } propsMap.get(propertyPath).put(properties[i].getName(), properties[i].getData()); } for (String propertyPath : propsMap.keySet()) { final Map<String, byte[]> pathProps = propsMap.get(propertyPath); callback.singlePath(propertyPath, pathProps); } }