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

svn commit: r1665624 - /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java

Author: cziegeler
Date: Tue Mar 10 17:25:13 2015
New Revision: 1665624

URL: http://svn.apache.org/r1665624
Log:
SLING-4491 : Potential NPE when JobManagerConfiguration is deactivated

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java?rev=1665624&r1=1665623&r2=1665624&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java Tue Mar 10 17:25:13 2015
@@ -443,9 +443,9 @@ public class JobManagerConfiguration imp
     public void configurationChanged(final boolean active) {
         final TopologyCapabilities caps = this.topologyCapabilities;
         if ( caps != null ) {
-            synchronized ( this.listeners ) {
-                this.stopProcessing(false);
+            this.stopProcessing(false);
 
+            if ( active ) {
                 this.startProcessing(Type.PROPERTIES_CHANGED, caps, true);
             }
         }
@@ -497,21 +497,24 @@ public class JobManagerConfiguration imp
 
         // and run checker again in some seconds (if leader)
         // notify listeners afterwards
-        scheduler.schedule(new Runnable() {
-
-                @Override
-                public void run() {
-                    if ( newCaps.isLeader() && newCaps.isActive() ) {
-                        mt.assignUnassignedJobs();
-                    }
-                    // start listeners
-                    synchronized ( listeners ) {
-                        if ( topologyCapabilities != null && newCaps.isActive() ) {
-                            notifiyListeners();
+        final Scheduler local = this.scheduler;
+        if ( local != null ) {
+            local.schedule(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        if ( newCaps.isLeader() && newCaps.isActive() ) {
+                            mt.assignUnassignedJobs();
+                        }
+                        // start listeners
+                        synchronized ( listeners ) {
+                            if ( topologyCapabilities != null && newCaps.isActive() ) {
+                                notifiyListeners();
+                            }
                         }
                     }
-                }
-            }, scheduler.AT(new Date(System.currentTimeMillis() + this.backgroundLoadDelay * 1000)));
+                }, local.AT(new Date(System.currentTimeMillis() + this.backgroundLoadDelay * 1000)));
+        }
         logger.debug("Job processing started");
     }