} if (skipDelta) { continue;
    public int getFileRevisions(String path, long sRevision, long eRevision, ISVNFileRevisionHandler handler) throws SVNException {        Long srev = getRevisionObject(sRevision);        Long erev = getRevisionObject(eRevision);        int count = 0;        try {            openConnection();            Object[] buffer = new Object[] { "get-file-revs", getRepositoryPath(path), srev, erev };            write("(w(s(n)(n)))", buffer);            authenticate();            while (true) {                SVNFileRevision fileRevision = null;                try {                    read("(SN(*P)(*Z))", buffer);                    count++;                } catch (SVNException e) {                    read("x", buffer);                    // there are could be error message                    read("[()]", buffer);                    return count;                }                String name = null;                if (handler != null) {                    name = (String) buffer[0];                    long revision = SVNReader.getLong(buffer, 1);                    Map properties = SVNReader.getMap(buffer, 2);                    Map propertiesDelta = SVNReader.getMap(buffer, 3);                    if (name != null) {                        fileRevision = new SVNFileRevision(name, revision, properties, propertiesDelta);                    }                    buffer[2] = null;                    buffer[3] = null;                }                if (handler != null && fileRevision != null) {                    handler.handleFileRevision(fileRevision);                }                SVNDiffWindowBuilder builder = SVNDiffWindowBuilder.newInstance();                while (true) {                    byte[] line = (byte[]) read("?W?B", buffer)[1];                    if (line == null) {                        // may be failure                        read("[]", buffer);                        break;                    } else if (line.length == 0) {                        // empty line, delta end.                        break;                    }                    builder.accept(line, 0);                    SVNDiffWindow window = builder.getDiffWindow();                    if (window != null) {                        builder.reset(1);                        OutputStream os = handler.handleDiffWindow(name == null ? path : name, window);                        long length = window.getNewDataLength();                        while (length > 0) {                            byte[] contents = (byte[]) myConnection.read("B", null)[0];                            length -= contents.length;                            try {                                if (os != null) {                                    os.write(contents);                                }                            } catch (IOException th) {                                DebugLog.error(th);                            }                        }                        try {                            if (os != null) {                                os.close();                            }                        } catch (IOException th) {                            DebugLog.error(th);                        }                    }                }                handler.handleDiffWindowClosed(name == null ? path : name);            }    	} finally {            closeConnection();        }    }