You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by js...@apache.org on 2016/12/08 14:11:16 UTC

svn commit: r1773236 - /sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java

Author: jsedding
Date: Thu Dec  8 14:11:15 2016
New Revision: 1773236

URL: http://svn.apache.org/viewvc?rev=1773236&view=rev
Log:
SLING-6375 - Log a warning in case a resource resolver is closed by the Sling RR Finalizer thread

- reorder deactivate sequence in order to allow MapEntries to close its RR before it is forcefully closed
- add message to opening stacktrace exception

Modified:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java?rev=1773236&r1=1773235&r2=1773236&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java Thu Dec  8 14:11:15 2016
@@ -302,13 +302,6 @@ public class CommonResourceResolverFacto
         }
         this.refQueueThread.interrupt();
 
-        // copy and clear before closing
-        final Collection<ResolverReference> references = new ArrayList<ResolverReference>(refs.values());
-        refs.clear();
-        for(final ResolverReference ref : references) {
-            ref.close();
-        }
-
         if (plugin != null) {
             plugin.dispose();
             plugin = null;
@@ -319,6 +312,13 @@ public class CommonResourceResolverFacto
             mapEntries = MapEntries.EMPTY;
         }
         resolverStackHolder = null;
+
+        // copy and clear map before closing the remaining references
+        final Collection<ResolverReference> references = new ArrayList<ResolverReference>(refs.values());
+        refs.clear();
+        for(final ResolverReference ref : references) {
+            ref.close();
+        }
     }
 
     public ResourceDecoratorTracker getResourceDecoratorTracker() {
@@ -463,7 +463,7 @@ public class CommonResourceResolverFacto
             super(referent, q);
             this.control = ctrl;
             this.factory = factory;
-            this.openingException = LOG.isInfoEnabled() ? new Exception() : null;
+            this.openingException = LOG.isInfoEnabled() ? new Exception("Opening Stacktrace") : null;
         }
 
         public void close() {