You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:47:04 UTC

[sling-org-apache-sling-jcr-classloader] 16/18: Check session before unregistering listeners

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

rombert pushed a commit to annotated tag org.apache.sling.jcr.classloader-3.1.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-classloader.git

commit 3f880ce57b642960c4d49011b644347c9ffa2e97
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Feb 1 15:38:27 2010 +0000

    Check session before unregistering listeners
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/classloader@905310 13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/DynamicRepositoryClassLoader.java        | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java b/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
index 3b38b95..c754d63 100644
--- a/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
+++ b/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
@@ -837,14 +837,17 @@ public final class DynamicRepositoryClassLoader
     private final void unregisterListeners() {
         log.debug("unregisterListeners: Deregistering from the observation service");
         if ( this.proxyListeners != null ) {
-            for(final EventListener listener : this.proxyListeners) {
-                if ( listener != null ) {
-                    try {
-                        final ObservationManager om = session.getWorkspace().getObservationManager();
-                        om.removeEventListener(listener);
-                    } catch (RepositoryException re) {
-                        log.error("unregisterListener: Cannot unregister " +
-                            this + " from observation manager", re);
+            // check session first!
+            if ( session.isLive() ) {
+                for(final EventListener listener : this.proxyListeners) {
+                    if ( listener != null ) {
+                        try {
+                            final ObservationManager om = session.getWorkspace().getObservationManager();
+                            om.removeEventListener(listener);
+                        } catch (RepositoryException re) {
+                            log.error("unregisterListener: Cannot unregister " +
+                                this + " from observation manager", re);
+                        }
                     }
                 }
             }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.