Author: cziegeler
Date: Mon Feb  1 15:38:27 2010
New Revision: 905310

URL: http://svn.apache.org/viewvc?rev=905310&view=rev
Log:
Check session before unregistering listeners

Modified:
    
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java

Modified: 
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java?rev=905310&r1=905309&r2=905310&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
 (original)
+++ 
sling/trunk/bundles/jcr/classloader/src/main/java/org/apache/sling/jcr/classloader/internal/DynamicRepositoryClassLoader.java
 Mon Feb  1 15:38:27 2010
@@ -837,14 +837,17 @@
     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);
+                        }
                     }
                 }
             }


Reply via email to