You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2015/01/26 13:56:21 UTC

svn commit: r1654779 - /sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java

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()));
+            }
         }
     }