This is an automated email from the ASF dual-hosted git repository. jsedding pushed a commit to branch resolver-2.x-backports in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git
commit 62754ac145b801ef73fd1d1fe94b7eea3cc6c5df Author: Jörg Hoh <[email protected]> AuthorDate: Wed Jul 22 18:28:23 2026 +0200 SLING-13266 avoid race on shutdown (#71) (cherry picked from commit d9ce964e9a33708c5bf645e2a062347d7969fa52) --- .../sling/servlets/resolver/internal/bundle/BundledScriptTracker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java b/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java index 3596e23..2915722 100644 --- a/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java +++ b/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java @@ -131,8 +131,9 @@ public class BundledScriptTracker implements BundleTrackerCustomizer<List<Servic bt.open(); } + // synchronized against refreshDispatcher so a concurrent refresh cannot re-publish dispatchers after shutdown @Deactivate - protected void deactivate() { + protected synchronized void deactivate() { BundleTracker<List<ServiceRegistration<Servlet>>> bt = tracker.getAndSet(null); if (bt != null) { bt.close();
