New resource resolver search path breaks template policies

Last update: 2023-01-12

Description

Environment

Adobe Experience Manager 6.5

Issue/Symptoms

Add a resource resolver search path ("/apps/proj1") through script:

org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.cfg.json

{

"resource.resolver.searchpath":

"/apps/proj1",

"/apps",

"/libs"

}

This breaks all policies defined in /conf/proj1/settings/wcm/policies

Definitions in policies.xml exist, but it is not possible to relate them to editable page templates, and all previous policy selections in templates are broken. Only removing the line '/apps/proj1' from the cfg.json script, gets the defined policies back to the previous working state.

This can be reproduced using the following steps:

  1. Create any policy related to a specific component on a specific page template.

  2. Save the template with chosen policy.

  3. Add script with:

    resource.resolver.searchpath":
    
            "/apps/projname"...
    
  4. Confirm that the defined policy for the template and related component can no longer be selected in the dropdown on edit template.

Resolution

As best practice, avoid amending /apps and /libs. Sling would look for components "First in /apps, then /libs”.

Sling will go down this list and look for resources by going through this list in order. Thus, things in /apps (unless specified using /libs at the beginning of the path) will be found first and that is why how that overlay works.

On this page