Author: stefanegli
Date: Mon Jan 26 12:56:21 2015
New Revision: 1654779

URL: http://svn.apache.org/r1654779
Log:
SLING-3832 : TOPOLOGY_INIT from bindTopologyEventListener must be sent from 
within synchronized(lock) to ensure it is sent as the first event - otherwise 
CHANGING and/or CHANGED could sneak in ahead

Modified:
    
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java

Modified: 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java?rev=1654779&r1=1654778&r2=1654779&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java
 (original)
+++ 
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java
 Mon Jan 26 12:56:21 2015
@@ -214,19 +214,16 @@ public class DiscoveryServiceImpl implem
         logger.debug("bindTopologyEventListener: Binding TopologyEventListener 
{}",
                 eventListener);
 
-        boolean activated = false;
         synchronized (lock) {
             final List<TopologyEventListener> currentList = new 
ArrayList<TopologyEventListener>(
                     Arrays.asList(eventListeners));
             currentList.add(eventListener);
             this.eventListeners = currentList
                     .toArray(new TopologyEventListener[currentList.size()]);
-            activated = this.activated;
-        }
-
-        if (activated) {
-            sendTopologyEvent(eventListener, new TopologyEvent(
-                    Type.TOPOLOGY_INIT, null, getTopology()));
+            if (activated) {
+                sendTopologyEvent(eventListener, new TopologyEvent(
+                        Type.TOPOLOGY_INIT, null, getTopology()));
+            }
         }
     }
 


Reply via email to