editor.closeEdit();
    public void replay(long lowRevision, long highRevision, boolean sendDeltas, ISVNEditor editor) throws SVNException {        try {            openRepository();            FSRevisionRoot root = myFSFS.createRevisionRoot(highRevision);            Map fsChanges = root.getChangedPaths();            String basePath = getRepositoryPath("");            basePath = basePath.startsWith("/") ? basePath.substring(1) : basePath;            Collection interestingPaths = new LinkedList();            Map changedPaths = new HashMap();            for (Iterator paths = fsChanges.keySet().iterator(); paths.hasNext();) {                String path = (String) paths.next();                FSPathChange change = (FSPathChange) fsChanges.get(path);                  path = path.startsWith("/") ? path.substring(1) : path;                if ("".equals(basePath) || (path.startsWith(basePath) && (path.charAt(basePath.length()) == '/' || path.length() == basePath.length()))) {                    path = path.startsWith("/") ? path.substring(1) : path;                    interestingPaths.add(path);                    changedPaths.put(path, change);                }            }            if (isInvalidRevision(lowRevision)) {                lowRevision = 0;            }                        FSRoot compareRoot = null;            if (sendDeltas) {                compareRoot = myFSFS.createRevisionRoot(root.getRevision() - 1);            }                        editor.targetRevision(root.getRevision());                        ISVNCommitPathHandler handler = new FSReplayPathHandler(myFSFS, root, compareRoot, changedPaths, basePath, lowRevision);            SVNCommitUtil.driveCommitEditor(handler, interestingPaths, editor, -1);            editor.closeEdit();        } finally {            closeRepository();        }    }