try { while (true) {
while (true) { try {
    public int getLocations(String path, long pegRevision, long[] revisions, ISVNLocationEntryHandler handler) throws SVNException {        assertValidRevision(pegRevision);        for (int i = 0; i < revisions.length; i++) {            assertValidRevision(revisions[i]);        }        int count = 0;        try {            openConnection();            path = getRepositoryPath(path);            Object[] buffer = new Object[] { "get-locations", path, getRevisionObject(pegRevision), revisions };            write("(w(sn(*n)))", buffer);            authenticate();            try {                while (true) {                    read("(NS)", buffer);                    count++;                    if (handler != null) {                        long revision = SVNReader.getLong(buffer, 0);                        String location = SVNReader.getString(buffer, 1);                        if (location != null) {                            handler.handleLocationEntry(new SVNLocationEntry(revision, location));                        }                    }                }            } catch (SVNException e) {                read("x", buffer);            }            read("[()]", buffer);        } finally {            closeConnection();        }        return count;    }