docs: public List<CmsLock> getLocks(CmsDbContext dbc, String resourceName, CmsLockFilter filter) throws CmsException {
  
          List<CmsLock> locks = new ArrayList<CmsLock>();
          Iterator<CmsLock> itLocks = OpenCms.getMemoryMonitor().getAllCachedLocks().iterator();
          while (itLocks.hasNext()) {
              CmsLock lock = itLocks.next();
              if (filter.isSharedExclusive()) {
                  CmsResource resource;
                  try {
                      resource = m_driverManager.readResource(dbc, lock.getResourceName(), CmsResourceFilter.ALL);
                  } catch (CmsVfsResourceNotFoundException e) {
                      OpenCms.getMemoryMonitor().uncacheLock(lock.getResourceName());
                      continue;
                  }
                  if (resource.getSiblingCount() > 1) {
                      Iterator<CmsResource> itSiblings = internalReadSiblings(dbc, resource).iterator();
                      while (itSiblings.hasNext()) {
                          CmsResource sibling = itSiblings.next();
                          CmsLock siblingLock = internalSiblingLock(lock, sibling.getRootPath());
                          if (filter.match(resourceName, siblingLock)) {
                              locks.add(siblingLock);
                          }
                      }
                  }
              }
              if (filter.match(resourceName, lock)) {
                  locks.add(lock);
              }
          }
          return locks;
      }