if(pathToTokens == null || pathToTokens.isEmpty()){ return; } Set keySet = pathToTokens.keySet(); Iterator keyPathIter = keySet.iterator(); while(keyPathIter.hasNext()){ String keyPath = (String)keyPathIter.next(); String tokenVal = (String)pathToTokens.get(keyPath); FSWriter.doUnlock(keyPath, tokenVal, getUserName(), force, myReposRootDir);
try{ openRepository(); for (Iterator paths = pathToTokens.keySet().iterator(); paths.hasNext();) { String path = (String)paths.next(); String token = (String)pathToTokens.get(path); String reposPath = getRepositoryPath(path); SVNErrorMessage error = null; try{ FSWriter.unlockPath(reposPath, token, getUserName(), force, myReposRootDir); }catch(SVNException svne){ error = svne.getErrorMessage(); if(!FSErrors.isUnlockError(error)){ throw svne; } } if(handler != null){ handler.handleUnlock(reposPath, new SVNLock(reposPath, token, null, null, null, null), error); } } }finally{ closeRepository();
    public void unlock(Map pathToTokens, boolean force, ISVNLockHandler handler) throws SVNException {        if(pathToTokens == null || pathToTokens.isEmpty()){            return;        }                Set keySet = pathToTokens.keySet();        Iterator keyPathIter = keySet.iterator();        while(keyPathIter.hasNext()){            String keyPath = (String)keyPathIter.next();            String tokenVal = (String)pathToTokens.get(keyPath);            FSWriter.doUnlock(keyPath, tokenVal, getUserName(), force, myReposRootDir);        }    }