Problema
Le ricerche trova e sostituisci eseguite nell'interfaccia classica Site Admin (/siteadmin) non riescono in alcuni percorsi di contenuto. Un errore simile a quello sotto riportato viene registrato nel log degli errori:
01.06.2017 11:36:28.122 *ERROR* [0:0:0:0:0:0:0:1 [1496331387272] GET /content/geometrixx/en.find.json HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught Throwable java.lang.NullPointerException: null at com.day.cq.wcm.core.impl.servlets.FindReplaceServlet.findPages(FindReplaceServlet.java:264) at com.day.cq.wcm.core.impl.servlets.FindReplaceServlet.doGet(FindReplaceServlet.java:144) at com.day.cq.commons.servlets.AbstractPredicateServlet.doGet(AbstractPredicateServlet.java:68) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.mayService(SlingSafeMethodsServlet.java:269) at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:140) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:345)
Causa
Questo può essere causato dalla memorizzazione di nt: unstructured direttamente sotto i nodi cq: Page invece di memorizzarli sotto il nodo jcr: content (cq: PageContent) delle pagine.
Per esempio:
Sbagliato:
/content/geometrixx/en/footer/copyright
Esatto:
/content/geometrixx/en/jcr:content/footer/copyright
Risoluzione
Spostare i nodi problematici sotto i sottonodi di pagine di jcr: content invece di memorizzarli direttamente sotto il nodo cq: Page. La memorizzazione dei contenuti sotto la struttura dei nodi di cq: PageContent (jcr: content) è l'approccio migliore.