You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by re...@apache.org on 2025/04/06 10:04:37 UTC

(sling-org-apache-sling-resourceresolver) branch SLING-12738 created (now a66a7d35)

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

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


      at a66a7d35 SLING-12738: ResourceResolver is not closed by AliasHandler

This branch includes the following new commits:

     new ffb1432c ResourceResolver is not closed by AliasHandler
     new 271cf0ad Revert "ResourceResolver is not closed by AliasHandler"
     new a66a7d35 SLING-12738: ResourceResolver is not closed by AliasHandler

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(sling-org-apache-sling-resourceresolver) 02/03: Revert "ResourceResolver is not closed by AliasHandler"

Posted by re...@apache.org.
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 <re...@apache.org>
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;
     }
 


(sling-org-apache-sling-resourceresolver) 01/03: ResourceResolver is not closed by AliasHandler

Posted by re...@apache.org.
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 ffb1432c7cdfa52819a1ee6a03195f8cf6ff5402
Author: Julian Reschke <re...@apache.org>
AuthorDate: Sun Apr 6 11:02:50 2025 +0100

    ResourceResolver is not closed by AliasHandler
---
 .../impl/mapping/AliasHandler.java                 | 85 +++++++++++-----------
 1 file changed, 44 insertions(+), 41 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 d83c7135..f268d88a 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,56 +281,59 @@ class AliasHandler {
      * configured alias locations having the sling:alias property
      */
     private Map<String, Map<String, Collection<String>>> loadAliases(
-            List<String> conflictingAliases, List<String> invalidAliases) throws LoginException {
-
-        final ResourceResolver resolver =
-                factory.getServiceResourceResolver(factory.getServiceUserAuthenticationInfo("mapping"));
+            List<String> conflictingAliases, List<String> invalidAliases) {
 
         final Map<String, Map<String, Collection<String>>> map = new ConcurrentHashMap<>();
-        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);
-        }
+        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);
+            }
 
-        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));
+            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));
 
-        String diagnostics = "";
-        if (it instanceof PagedQueryIterator) {
-            PagedQueryIterator pit = (PagedQueryIterator) it;
+            String diagnostics = "";
+            if (it instanceof PagedQueryIterator) {
+                PagedQueryIterator pit = (PagedQueryIterator) it;
 
-            if (!pit.getWarning().isEmpty()) {
-                log.warn(pit.getWarning());
-            }
+                if (!pit.getWarning().isEmpty()) {
+                    log.warn(pit.getWarning());
+                }
 
-            diagnostics = pit.getStatistics();
-        }
+                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);
+            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);
+            this.aliasResourcesOnStartup.set(count);
+        } catch (LoginException ex) {
+            log.error("Alias init failed", ex);
+        }
 
         return map;
     }


(sling-org-apache-sling-resourceresolver) 03/03: SLING-12738: ResourceResolver is not closed by AliasHandler

Posted by re...@apache.org.
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 a66a7d35890cb2a8a04e5970c328be68f3c2b3e4
Author: Julian Reschke <re...@apache.org>
AuthorDate: Sun Apr 6 11:04:04 2025 +0100

    SLING-12738: ResourceResolver is not closed by AliasHandler
---
 .../impl/mapping/AliasHandler.java                 | 85 +++++++++++-----------
 1 file changed, 44 insertions(+), 41 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 d83c7135..f268d88a 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,56 +281,59 @@ class AliasHandler {
      * configured alias locations having the sling:alias property
      */
     private Map<String, Map<String, Collection<String>>> loadAliases(
-            List<String> conflictingAliases, List<String> invalidAliases) throws LoginException {
-
-        final ResourceResolver resolver =
-                factory.getServiceResourceResolver(factory.getServiceUserAuthenticationInfo("mapping"));
+            List<String> conflictingAliases, List<String> invalidAliases) {
 
         final Map<String, Map<String, Collection<String>>> map = new ConcurrentHashMap<>();
-        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);
-        }
+        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);
+            }
 
-        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));
+            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));
 
-        String diagnostics = "";
-        if (it instanceof PagedQueryIterator) {
-            PagedQueryIterator pit = (PagedQueryIterator) it;
+            String diagnostics = "";
+            if (it instanceof PagedQueryIterator) {
+                PagedQueryIterator pit = (PagedQueryIterator) it;
 
-            if (!pit.getWarning().isEmpty()) {
-                log.warn(pit.getWarning());
-            }
+                if (!pit.getWarning().isEmpty()) {
+                    log.warn(pit.getWarning());
+                }
 
-            diagnostics = pit.getStatistics();
-        }
+                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);
+            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);
+            this.aliasResourcesOnStartup.set(count);
+        } catch (LoginException ex) {
+            log.error("Alias init failed", ex);
+        }
 
         return map;
     }