This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch SLING-12738
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git

commit 271cf0ad09ba1aa8b4faa4b70ece17ea334ce33d
Author: Julian Reschke <[email protected]>
AuthorDate: Sun Apr 6 11:03:36 2025 +0100

    Revert "ResourceResolver is not closed by AliasHandler"
    
    This reverts commit ffb1432c7cdfa52819a1ee6a03195f8cf6ff5402.
---
 .../impl/mapping/AliasHandler.java                 | 85 +++++++++++-----------
 1 file changed, 41 insertions(+), 44 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/AliasHandler.java
 
b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/AliasHandler.java
index f268d88a..d83c7135 100644
--- 
a/src/main/java/org/apache/sling/resourceresolver/impl/mapping/AliasHandler.java
+++ 
b/src/main/java/org/apache/sling/resourceresolver/impl/mapping/AliasHandler.java
@@ -281,60 +281,57 @@ class AliasHandler {
      * configured alias locations having the sling:alias property
      */
     private Map<String, Map<String, Collection<String>>> loadAliases(
-            List<String> conflictingAliases, List<String> invalidAliases) {
+            List<String> conflictingAliases, List<String> invalidAliases) 
throws LoginException {
 
-        final Map<String, Map<String, Collection<String>>> map = new 
ConcurrentHashMap<>();
+        final ResourceResolver resolver =
+                
factory.getServiceResourceResolver(factory.getServiceUserAuthenticationInfo("mapping"));
 
-        try (final ResourceResolver resolver =
-                
factory.getServiceResourceResolver(factory.getServiceUserAuthenticationInfo("mapping")))
 {
-            final String baseQueryString = generateAliasQuery();
-
-            Iterator<Resource> it;
-            try {
-                final String queryStringWithSort =
-                        baseQueryString + " AND FIRST([sling:alias]) >= '%s' 
ORDER BY FIRST([sling:alias])";
-                it = new PagedQueryIterator("alias", "sling:alias", resolver, 
queryStringWithSort, 2000);
-            } catch (QuerySyntaxException ex) {
-                log.debug("sort with first() not supported, falling back to 
base query", ex);
-                it = queryUnpaged(baseQueryString, resolver);
-            } catch (UnsupportedOperationException ex) {
-                log.debug("query failed as unsupported, retrying without 
paging/sorting", ex);
-                it = queryUnpaged(baseQueryString, resolver);
-            }
+        final Map<String, Map<String, Collection<String>>> map = new 
ConcurrentHashMap<>();
+        final String baseQueryString = generateAliasQuery();
 
-            log.debug("alias initialization - start");
-            long count = 0;
-            long processStart = System.nanoTime();
-            while (it.hasNext()) {
-                count += 1;
-                loadAlias(it.next(), map, conflictingAliases, invalidAliases);
-            }
-            long processElapsed = System.nanoTime() - processStart;
-            long resourcePerSecond = (count * TimeUnit.SECONDS.toNanos(1) / 
(processElapsed == 0 ? 1 : processElapsed));
+        Iterator<Resource> it;
+        try {
+            final String queryStringWithSort =
+                    baseQueryString + " AND FIRST([sling:alias]) >= '%s' ORDER 
BY FIRST([sling:alias])";
+            it = new PagedQueryIterator("alias", "sling:alias", resolver, 
queryStringWithSort, 2000);
+        } catch (QuerySyntaxException ex) {
+            log.debug("sort with first() not supported, falling back to base 
query", ex);
+            it = queryUnpaged(baseQueryString, resolver);
+        } catch (UnsupportedOperationException ex) {
+            log.debug("query failed as unsupported, retrying without 
paging/sorting", ex);
+            it = queryUnpaged(baseQueryString, resolver);
+        }
 
-            String diagnostics = "";
-            if (it instanceof PagedQueryIterator) {
-                PagedQueryIterator pit = (PagedQueryIterator) it;
+        log.debug("alias initialization - start");
+        long count = 0;
+        long processStart = System.nanoTime();
+        while (it.hasNext()) {
+            count += 1;
+            loadAlias(it.next(), map, conflictingAliases, invalidAliases);
+        }
+        long processElapsed = System.nanoTime() - processStart;
+        long resourcePerSecond = (count * TimeUnit.SECONDS.toNanos(1) / 
(processElapsed == 0 ? 1 : processElapsed));
 
-                if (!pit.getWarning().isEmpty()) {
-                    log.warn(pit.getWarning());
-                }
+        String diagnostics = "";
+        if (it instanceof PagedQueryIterator) {
+            PagedQueryIterator pit = (PagedQueryIterator) it;
 
-                diagnostics = pit.getStatistics();
+            if (!pit.getWarning().isEmpty()) {
+                log.warn(pit.getWarning());
             }
 
-            log.info(
-                    "alias initialization - completed, processed {} resources 
with sling:alias properties in {}ms (~{} resource/s){}",
-                    count,
-                    TimeUnit.NANOSECONDS.toMillis(processElapsed),
-                    resourcePerSecond,
-                    diagnostics);
-
-            this.aliasResourcesOnStartup.set(count);
-        } catch (LoginException ex) {
-            log.error("Alias init failed", ex);
+            diagnostics = pit.getStatistics();
         }
 
+        log.info(
+                "alias initialization - completed, processed {} resources with 
sling:alias properties in {}ms (~{} resource/s){}",
+                count,
+                TimeUnit.NANOSECONDS.toMillis(processElapsed),
+                resourcePerSecond,
+                diagnostics);
+
+        this.aliasResourcesOnStartup.set(count);
+
         return map;
     }
 

Reply via email to