protected void processNewLock( HttpManager milton, Request request, Response response, LockableResource r, LockTimeout timeout) throws NotAuthorizedException { LockInfo lockInfo; try { lockInfo = LockInfoSaxHandler.parseLockInfo(request); } catch (SAXException ex) { throw new RuntimeException("Exception reading request body", ex); } catch (IOException ex) { throw new RuntimeException("Exception reading request body", ex); } if (handlerHelper.isLockedOut(request, r)) { this.responseHandler.respondLocked(request, response, r); return; } log.debug("locking: " + r.getName()); LockResult result; try { result = r.lock(timeout, lockInfo); } catch (PreConditionFailedException ex) { responseHandler.respondPreconditionFailed(request, response, r); return; } catch (LockedException ex) { responseHandler.respondLocked(request, response, r); return; } if (result.isSuccessful()) { LockToken tok = result.getLockToken(); log.debug("..locked ok: " + tok.tokenId); response.setLockTokenHeader( "<opaquelocktoken:" + tok.tokenId + ">"); // spec says to set response header. See 8.10.1 respondWithToken(tok, request, response); } else { respondWithLockFailure(result, request, response); } }