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();

Reply via email to