Allow passing of delay to the EntityOwnerElectionStrategy
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / entityownership / EntityOwnerChangeListener.java
index cf9df1821a93bab26787e10941c42e870888b17f..bea0caa7c666ed2ae158a6e130cf32c04e703730 100644 (file)
@@ -67,19 +67,19 @@ class EntityOwnerChangeListener implements DOMDataTreeChangeListener {
             if(!Objects.equal(origOwner, newOwner)) {
                 boolean isOwner = Objects.equal(localMemberName, newOwner);
                 boolean wasOwner = Objects.equal(localMemberName, origOwner);
-                if(isOwner || wasOwner) {
-                    Entity entity = createEntity(change.getRootPath());
+                boolean hasOwner = newOwner != null && !newOwner.toString().isEmpty();
 
-                    LOG.debug("{}: Calling notifyEntityOwnershipListeners: entity: {}, wasOwner: {}, isOwner: {}",
-                            logId(), entity, wasOwner, isOwner);
+                Entity entity = createEntity(change.getRootPath());
 
-                    listenerSupport.notifyEntityOwnershipListeners(entity, wasOwner, isOwner);
-                }
+                LOG.debug("{}: Calling notifyEntityOwnershipListeners: entity: {}, wasOwner: {}, isOwner: {}, hasOwner: {}",
+                        logId(), entity, wasOwner, isOwner, hasOwner);
+
+                listenerSupport.notifyEntityOwnershipListeners(entity, wasOwner, isOwner, hasOwner);
             }
         }
     }
 
-    private String extractOwner(LeafNode<?> ownerLeaf) {
+    private static String extractOwner(LeafNode<?> ownerLeaf) {
         Object value = ownerLeaf.getValue();
         return value != null ? value.toString() : null;
     }