DebugLog.log("completed");
    public long doUpdate(File file, SVNRevision revision, boolean recursive)            throws SVNException {        long revNumber = getRevisionNumber(file, revision);        SVNWCAccess wcAccess = createWCAccess(file);        final SVNReporter reporter = new SVNReporter(wcAccess, true, recursive);        try {            wcAccess.open(true, recursive);            SVNUpdateEditor editor = new SVNUpdateEditor(wcAccess, null, recursive, isLeaveConflictsUnresolved());            SVNRepository repos = createRepository(wcAccess.getAnchor()                    .getEntries().getEntry("", true).getURL());            String target = "".equals(wcAccess.getTargetName()) ? null                    : wcAccess.getTargetName();            DebugLog.log("calling repos update");            repos.update(revNumber, target, recursive, reporter, editor);            DebugLog.log("completed");            if (editor.getTargetRevision() >= 0) {                if (recursive && !isIgnoreExternals()) {                    handleExternals(wcAccess);                }                DebugLog.log("dispatching completed event");                dispatchEvent(SVNEventFactory.createUpdateCompletedEvent(                        wcAccess, editor.getTargetRevision()));            }            return editor.getTargetRevision();        } finally {            wcAccess.close(true);            if (!isDoNotSleepForTimeStamp()) {                SVNFileUtil.sleepForTimestamp();            }        }    }