docs: protected boolean isUnlocked( ITransaction transaction,
                                    HttpServletRequest req,
                                    IResourceLocks resourceLocks,
                                    String path ) throws IOException, LockFailedException {
  
          LockedObject resourceLock = resourceLocks.getLockedObjectByPath(transaction, path);
          if (resourceLock == null || resourceLock.isShared()) {
              return true;
          }
  
          // the resource is locked
          String[] requestLockTokens = getLockIdFromIfHeader(req);
          String requestLockToken = null;
          if (requestLockTokens != null) {
              requestLockToken = requestLockTokens[0];
              LockedObject lockedObjectByToken = resourceLocks.getLockedObjectByID(transaction, requestLockToken);
              return lockedObjectByToken != null && lockedObjectByToken.equals(resourceLock);
          }
          return false;
      }