code: private void doMacLockRequestWorkaround( final ITransaction transaction, final WebdavRequest req, final WebdavResponse resp )
          throws LockFailedException, IOException
      {
          LockedObject lo;
          final int depth = getDepth( req );
          int lockDuration = getTimeout( transaction, req );
          if ( lockDuration < 0 || lockDuration > MAX_TIMEOUT )
          {
              lockDuration = DEFAULT_TIMEOUT;
          }
  
          boolean lockSuccess = false;
          lockSuccess = _resourceLocks.exclusiveLock( transaction, _path, _lockOwner, depth, lockDuration );
  
          if ( lockSuccess )
          {
              // Locks successfully placed - return information about
              lo = _resourceLocks.getLockedObjectByPath( transaction, _path );
              if ( lo != null )
              {
                  generateXMLReport( transaction, resp, lo );
              }
              else
              {
                  resp.sendError( SC_INTERNAL_SERVER_ERROR );
              }
          }
          else
          {
              // Locking was not successful
              sendLockFailError( transaction, req, resp );
          }
      }
docs: Executes the lock for a Mac OS Finder client