public boolean isLockOwner() { String lt = activeLock.getToken(); if (lt == null) { return false; } else { return sessionLockTokens.contains(lt); } }
public boolean isLockOwner() { String lt = activeLock.getToken(); if (lt == null) { return false; } else { return sessionLockTokens.contains(lt); } }
public String getLockToken() { return (isSessionScoped()) ? null : activeLock.getToken(); }
/** * @param lockToken lock token * @param resource resource * @return true if has lock * @see LockManager#hasLock(String, org.apache.jackrabbit.webdav.DavResource) */ public boolean hasLock(String lockToken, DavResource resource) { ActiveLock lock = (ActiveLock) locks.get(resource.getResourcePath()); if (lock != null && lock.getToken().equals(lockToken)) { return true; } return false; }
/** * * @param lockToken * @param resource * @return * @see LockManager#hasLock(String, org.apache.jackrabbit.webdav.DavResource) */ public boolean hasLock(String lockToken, DavResource resource) { ActiveLock lock = locks.get(resource.getResourcePath()); if (lock != null && lock.getToken().equals(lockToken)) { return true; } return false; }
/** * * @param lockToken * @param resource * @return * @see LockManager#hasLock(String, org.apache.jackrabbit.webdav.DavResource) */ public boolean hasLock(String lockToken, DavResource resource) { ActiveLock lock = (ActiveLock) locks.get(resource.getResourcePath()); if (lock != null && lock.getToken().equals(lockToken)) { return true; } return false; }
public String getLockToken() { return (isSessionScoped()) ? null : activeLock.getToken(); }
/** * * @param lockToken * @param resource * @return * @see LockManager#hasLock(String, org.apache.jackrabbit.webdav.DavResource) */ public boolean hasLock(String lockToken, DavResource resource) { ActiveLock lock = locks.get(resource.getResourcePath()); if (lock != null && lock.getToken().equals(lockToken)) { return true; } return false; }
/** * Return true if this resource cannot be modified due to a write lock * that is not owned by the given session. * * @return true if this resource cannot be modified due to a write lock */ private boolean isLocked(DavResource res) { ActiveLock lock = res.getLock(Type.WRITE, Scope.EXCLUSIVE); if (lock == null) { return false; } else { for (String sLockToken : session.getLockTokens()) { if (sLockToken.equals(lock.getToken())) { return false; } } return true; } }
/** * Remove the lock hold by the given resource. * * @param lockToken * @param resource that is the lock holder */ public synchronized void releaseLock(String lockToken, DavResource resource) throws DavException { if (!locks.containsKey(resource.getResourcePath())) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } ActiveLock lock = locks.get(resource.getResourcePath()); if (lock.getToken().equals(lockToken)) { locks.remove(resource.getResourcePath()); } else { throw new DavException(DavServletResponse.SC_LOCKED); } }
/** * Remove the lock hold by the given resource. * * @param lockToken * @param resource that is the lock holder */ public synchronized void releaseLock(String lockToken, DavResource resource) throws DavException { if (!locks.containsKey(resource.getResourcePath())) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } ActiveLock lock = locks.get(resource.getResourcePath()); if (lock.getToken().equals(lockToken)) { locks.remove(resource.getResourcePath()); } else { throw new DavException(DavServletResponse.SC_LOCKED); } }
/** * Remove the lock hold by the given resource. * * @param lockToken * @param resource that is the lock holder */ public synchronized void releaseLock(String lockToken, DavResource resource) throws DavException { if (!locks.containsKey(resource.getResourcePath())) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } ActiveLock lock = (ActiveLock) locks.get(resource.getResourcePath()); if (lock.getToken().equals(lockToken)) { locks.remove(resource.getResourcePath()); } else { throw new DavException(DavServletResponse.SC_LOCKED); } }
/** * Remove the lock hold by the given resource. * * @param lockToken lock token * @param resource that is the lock holder * @throws org.apache.jackrabbit.webdav.DavException ex */ public synchronized void releaseLock(String lockToken, DavResource resource) throws DavException { if (!locks.containsKey(resource.getResourcePath())) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } ActiveLock lock = (ActiveLock) locks.get(resource.getResourcePath()); if (lock.getToken().equals(lockToken)) { locks.remove(resource.getResourcePath()); } else { throw new DavException(DavServletResponse.SC_LOCKED); } }
/** * Remove the write lock from this resource by unlocking the underlying * {@link javax.jcr.Node node}. * * @param lockToken * @throws org.apache.jackrabbit.webdav.DavException * @see org.apache.jackrabbit.webdav.DavResource#unlock(String) * @see javax.jcr.Node#unlock() */ @Override public void unlock(String lockToken) throws DavException { ActiveLock lock = getWriteLock(); if (lock != null && lockToken.equals(lock.getToken())) { try { ((Node) item).unlock(); getSession().removeReference(lock.getToken()); } catch (RepositoryException e) { throw new JcrDavException(e); } } else { super.unlock(lockToken); } }
/** * Send response body for a lock request intended to create a new lock. * * @param lock * @throws java.io.IOException * @see DavServletResponse#sendLockResponse(org.apache.jackrabbit.webdav.lock.ActiveLock) */ public void sendLockResponse(ActiveLock lock) throws IOException { CodedUrlHeader ltHeader = new CodedUrlHeader(DavConstants.HEADER_LOCK_TOKEN, lock.getToken()); httpResponse.setHeader(ltHeader.getHeaderName(), ltHeader.getHeaderValue()); DavPropertySet propSet = new DavPropertySet(); propSet.add(new LockDiscovery(lock)); sendXmlResponse(propSet, SC_OK); }
/** * @param lockInfo lock info * @param lockToken lock token * @param resource resource * @return lock * @throws DavException ex * @see DavResource#refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo, String) */ public ActiveLock refreshLock(LockInfo lockInfo, String lockToken, DavResource resource) throws DavException { ActiveLock lock = getLock(lockInfo.getType(), lockInfo.getScope(), resource); if (lock == null) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } else if (!lock.getToken().equals(lockToken)) { throw new DavException(DavServletResponse.SC_LOCKED); } lock.setTimeout(lockInfo.getTimeout()); return lock; }
/** * * @param lockInfo * @param lockToken * @param resource * @return * @throws DavException * @see DavResource#refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo, String) */ public ActiveLock refreshLock(LockInfo lockInfo, String lockToken, DavResource resource) throws DavException { ActiveLock lock = getLock(lockInfo.getType(), lockInfo.getScope(), resource); if (lock == null) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } else if (!lock.getToken().equals(lockToken)) { throw new DavException(DavServletResponse.SC_LOCKED); } lock.setTimeout(lockInfo.getTimeout()); return lock; }
/** * * @param lockInfo * @param lockToken * @param resource * @return * @throws DavException * @see DavResource#refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo, String) */ public ActiveLock refreshLock(LockInfo lockInfo, String lockToken, DavResource resource) throws DavException { ActiveLock lock = getLock(lockInfo.getType(), lockInfo.getScope(), resource); if (lock == null) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } else if (!lock.getToken().equals(lockToken)) { throw new DavException(DavServletResponse.SC_LOCKED); } lock.setTimeout(lockInfo.getTimeout()); return lock; }
/** * * @param lockInfo * @param lockToken * @param resource * @return * @throws DavException * @see DavResource#refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo, String) */ public ActiveLock refreshLock(LockInfo lockInfo, String lockToken, DavResource resource) throws DavException { ActiveLock lock = getLock(lockInfo.getType(), lockInfo.getScope(), resource); if (lock == null) { throw new DavException(DavServletResponse.SC_PRECONDITION_FAILED); } else if (!lock.getToken().equals(lockToken)) { throw new DavException(DavServletResponse.SC_LOCKED); } lock.setTimeout(lockInfo.getTimeout()); return lock; }
@Override public void unlock(SessionInfo sessionInfo, NodeId nodeId) throws RepositoryException { checkSessionInfo(sessionInfo); String uri = getItemUri(nodeId, sessionInfo); // Note: since sessionInfo does not allow to identify the id of the // lock holding node, we need to access the token via lockInfo // TODO: review this. LockInfoImpl lInfo = (LockInfoImpl) getLockInfo(sessionInfo, nodeId); if (lInfo == null) { throw new LockException("No Lock present on Node with id " + saveGetIdString(nodeId, sessionInfo)); } String lockToken = lInfo.getActiveLock().getToken(); boolean isSessionScoped = lInfo.isSessionScoped(); if (!((SessionInfoImpl) sessionInfo).getAllLockTokens().contains(lockToken)) { throw new LockException("Lock " + lockToken + " not owned by this session"); } HttpUnlock unlockRequest = new HttpUnlock(uri, lockToken); try { execute(unlockRequest, sessionInfo); ((SessionInfoImpl) sessionInfo).removeLockToken(lockToken, isSessionScoped); } finally { unlockRequest.releaseConnection(); } }