docs: public void createAccessControlList(String resourceType) throws CmsException {
  
          if (OpenCms.getRunLevel() < OpenCms.RUNLEVEL_2_INITIALIZING) {
              // we don't need this for simple test cases
              return;
          }
          if (m_permissionsCache == null) {
              m_permissionsCache = CmsMemoryMonitor.createLRUCacheMap(2048);
              OpenCms.getMemoryMonitor().register(this.getClass().getName() + "." + resourceType, m_permissionsCache);
          } else {
              m_permissionsCache.clear();
          }
  
          m_accessControlList = new CmsAccessControlList();
          Iterator<String> i = m_accessControl.keySet().iterator();
          while (i.hasNext()) {
              String key = i.next();
              if (!PRINCIPAL_DEFAULT.equals(key)) {
                  String value = m_accessControl.get(key);
                  // get the principal name from the principal String
                  String principal = key.substring(key.indexOf('.') + 1, key.length());
  
                  // create an OpenCms user context with "Guest" permissions
                  CmsObject cms = OpenCms.initCmsObject(OpenCms.getDefaultUsers().getUserGuest());
  
                  CmsUUID principalId = null;
                  if (key.startsWith(I_CmsPrincipal.PRINCIPAL_GROUP)) {
                      // read the group
                      principal = OpenCms.getImportExportManager().translateGroup(principal);
                      try {
                          principalId = cms.readGroup(principal).getId();
                      } catch (CmsException e) {
                          if (LOG.isErrorEnabled()) {
                              LOG.error(e.getLocalizedMessage(), e);
                          }
                      }
                  } else if (key.startsWith(I_CmsPrincipal.PRINCIPAL_USER)) {
                      // read the user
                      principal = OpenCms.getImportExportManager().translateUser(principal);
                      try {
                          principalId = cms.readUser(principal).getId();
                      } catch (CmsException e) {
                          if (LOG.isErrorEnabled()) {
                              LOG.error(e.getLocalizedMessage(), e);
                          }
                      }
                  } else {
                      // read the role with role name
                      CmsRole role = CmsRole.valueOfRoleName(principal);
                      if (role == null) {
                          // try to read the role in the old fashion with group name
                          role = CmsRole.valueOfGroupName(principal);
                      }
                      principalId = role.getId();
                  }
                  if (principalId != null) {
                      // create a new entry for the principal
                      CmsAccessControlEntry entry = new CmsAccessControlEntry(null, principalId, value);
                      m_accessControlList.add(entry);
                  }
              }
          }
      }