Advertencia de ResourceResolver no cerrada en com.day.cq.search.impl.builder.QueryBuilderImpl

Obtenga información sobre cómo resolver la advertencia de ResourceResolver no cerrada en com.day.cq.search.impl.builder.QueryBuilderImpl.

Descripción description

Entorno

AEM 6.5

Problema/Síntomas

Hay una advertencia de sesión no cerrada en los registros que se originan de la clase QueryBuilderImpl: 11.01.2018 01:03:18.878 *INFO* [ Apache Sling Resource Resolver Finalizer Thread]



11.01.2018 01:03:18.878 *INFO* [ Hilo Finalizador de Apache Sling Resource Resolver] org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl Se creó ResourceResolver aquí:



java.lang.Exception: Abriendo Stacktrace



at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl$ResolverReference.< init> (CommonResourceResolverFactoryImpl.java:521)



at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.register(CommonResourceResolverFactoryImpl.java:218)



at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.< init> (ResourceResolverImpl.java:101)



at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.< init> (ResourceResolverImpl.java:94)



at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:263)



at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolver(CommonResourceResolverFactoryImpl.jjjjavl ava:173)



en org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getResourceResolver(ResourceResolverFactoryImpl.java:105)



en com.day.cq.search.impl.builder.QueryBuilderImpl.createResourceResolver(QueryBuilderImpl.java:210)



en com.day.cq.search.impl.builder.QueryImpl.getResourceResolver(QueryImpl.getImpl java:231)



en com.day.cq.search.impl.result.HitImpl.getResource(HitImpl.java:108)



en com.day.cq.search.writer.SimpleHitWriter.writeSimpleJson(SimpleHitWriter.java:54)



en com.day.cq.search.writer.SimpleHitWriter.write(SimpleHitWriter.java:41)



at com.day.cq.search.impl.servlets.QueryBuilderJson Servlet.writeHits(QueryBuilderJsonServlet.java:165)



en com.day.cq.search.impl.servlets.QueryBuilderJsonServlet.handleQuery(QueryBuilderJsonServlet.java:113)



en com.day.cq.search.impl.servlets.QueryBuilderJsonServlet.doGet(QueryBuilderJsonServlet.java:73)



en org.apache.sling.api SlingSafeMethodsServlet.mayService(SlingSafeMethodsServlet.java:270)



at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:140)



at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:346)



at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:378)



at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552)



at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44)

Resolución resolution

AEM En sitios de Live, se recomienda que Dispatcher bloquee las direcciones URL /bin/querybuilder.

Estas URL se pueden utilizar de forma segura en instancias de autor (orientadas a la red interna), pero en sitios activos, tiene el potencial de abrir el sistema a la divulgación de datos.

La solución para este error es evitar usar el servlet /bin/querybuilder y usar en su lugar la API de QueryBuilder.

Después de llamar a la API, cierre manualmente ResourceResolver después de procesar el resultado de la consulta.

Busque el código de ejemplo ​ aquí. Por ejemplo, aquí están los solucionadores de recursos que pierden código:


Consulta query = queryBuilder.createQuery(…, session);
Resultado de la búsqueda = query.getResult();
for (Visita individual : result.getHits()) {
/ hacer algún procesamiento


Código de solución:



// solución alternativa: cerrar resolución de recursos internos
Iterator< Resource> resources = result.getResources();
if (resources.hasNext()) {
resources.next().getResourceResolver().close();
}

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f