X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fentityownership%2FEntityOwnershipListenerSupport.java;h=c0fe55f12d14ee092a8d34ac6cf41882523fb929;hb=d4fa6758d6b94aad894854c0fe6fcd82e7bbefd6;hp=dd83e65f1d169a74175ee65fc8eeaf823a012e66;hpb=f2d49be57f39eeaf5b645cf0d9312b44c72e52ba;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipListenerSupport.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipListenerSupport.java index dd83e65f1d..c0fe55f12d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipListenerSupport.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipListenerSupport.java @@ -37,6 +37,7 @@ class EntityOwnershipListenerSupport { private final Map listenerActorMap = new IdentityHashMap<>(); private final Set entitiesWithCandidateSet = new HashSet<>(); private final Multimap entityTypeListenerMap = HashMultimap.create(); + private volatile boolean inJeopardy = false; EntityOwnershipListenerSupport(ActorContext actorContext, String logId) { this.actorContext = actorContext; @@ -47,6 +48,18 @@ class EntityOwnershipListenerSupport { return logId; } + /** + * Set the in-jeopardy flag and indicate its previous state. + * + * @param inJeopardy new value of the in-jeopardy flag + * @return Previous value of the flag. + */ + boolean setInJeopardy(final boolean inJeopardy) { + final boolean wasInJeopardy = this.inJeopardy; + this.inJeopardy = inJeopardy; + return wasInJeopardy; + } + boolean hasCandidateForEntity(Entity entity) { return entitiesWithCandidateSet.contains(entity); } @@ -89,7 +102,7 @@ class EntityOwnershipListenerSupport { private void notifyListeners(Entity entity, boolean wasOwner, boolean isOwner, boolean hasOwner, Collection listeners) { - EntityOwnershipChange changed = new EntityOwnershipChange(entity, wasOwner, isOwner, hasOwner); + EntityOwnershipChange changed = new EntityOwnershipChange(entity, wasOwner, isOwner, hasOwner, inJeopardy); for(EntityOwnershipListener listener: listeners) { ActorRef listenerActor = listenerActorFor(listener);