You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2015/10/02 18:01:33 UTC

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

Author: radu
Date: Fri Oct  2 16:01:32 2015
New Revision: 1706439

URL: http://svn.apache.org/viewvc?rev=1706439&view=rev
Log:
SLING-5087 - The ResourceResolverImpl should provide a stack trace when CRUD operations are performed with a closed resolver

* added stack trace logging in checkClosed()

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

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java?rev=1706439&r1=1706438&r2=1706439&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverImpl.java Fri Oct  2 16:01:32 2015
@@ -100,6 +100,8 @@ public class ResourceResolverImpl extend
     /** Resource resolver context. */
     private final ResourceResolverContext context;
 
+    private Exception closedResolverException;
+
     /**
      * The resource resolver context.
      */
@@ -150,6 +152,7 @@ public class ResourceResolverImpl extend
      */
     @Override
     public void close() {
+        closedResolverException = new Exception("Stack Trace");
         if ( this.isClosed.compareAndSet(false, true)) {
             this.factory.unregister(this, this.context);
         }
@@ -163,6 +166,9 @@ public class ResourceResolverImpl extend
      */
     private void checkClosed() {
         if (this.isClosed.get()) {
+            if (closedResolverException != null) {
+                logger.error("The ResourceResolver has already been closed.", closedResolverException);
+            }
             throw new IllegalStateException("Resource resolver is already closed.");
         }
         if (!this.factory.isLive()) {