Bump odlparent to 5.0.0
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / entityownership / EntityOwnershipListenerSupport.java
index 84a58d95943bcd3405db83b5199c08a1acfc0d5b..0c4a646efef47b84cd22d37c24a50b5608c32cff 100644 (file)
@@ -19,8 +19,8 @@ import java.util.Map;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.stream.Collectors;
-import javax.annotation.concurrent.GuardedBy;
-import javax.annotation.concurrent.ThreadSafe;
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
 import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
@@ -29,11 +29,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Manages EntityOwnershipListener registrations and notifications for the EntityOwnershipShard.
+ * Manages EntityOwnershipListener registrations and notifications for the EntityOwnershipShard. This class is
+ * thread-safe.
  *
  * @author Thomas Pantelis
  */
-@ThreadSafe
 class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
     private static final Logger LOG = LoggerFactory.getLogger(EntityOwnershipListenerSupport.class);
 
@@ -49,11 +49,12 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
 
     private volatile boolean inJeopardy = false;
 
-    EntityOwnershipListenerSupport(ActorContext actorContext, String logId) {
+    EntityOwnershipListenerSupport(final ActorContext actorContext, final String logId) {
         this.actorContext = actorContext;
         this.logId = logId;
     }
 
+    @Override
     String getLogId() {
         return logId;
     }
@@ -64,13 +65,14 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
      * @param inJeopardy new value of the in-jeopardy flag
      * @return Previous value of the flag.
      */
+    @SuppressWarnings("checkstyle:hiddenField")
     boolean setInJeopardy(final boolean inJeopardy) {
         final boolean wasInJeopardy = this.inJeopardy;
         this.inJeopardy = inJeopardy;
         return wasInJeopardy;
     }
 
-    void addEntityOwnershipListener(String entityType, DOMEntityOwnershipListener listener) {
+    void addEntityOwnershipListener(final String entityType, final DOMEntityOwnershipListener listener) {
         LOG.debug("{}: Adding EntityOwnershipListener {} for entity type {}", logId, listener, entityType);
 
         listenerLock.writeLock().lock();
@@ -88,7 +90,7 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
         }
     }
 
-    void removeEntityOwnershipListener(String entityType, DOMEntityOwnershipListener listener) {
+    void removeEntityOwnershipListener(final String entityType, final DOMEntityOwnershipListener listener) {
         LOG.debug("{}: Removing EntityOwnershipListener {} for entity type {}", logId, listener, entityType);
 
         listenerLock.writeLock().lock();
@@ -114,7 +116,8 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
     }
 
     @Override
-    void notifyEntityOwnershipListeners(DOMEntity entity, boolean wasOwner, boolean isOwner, boolean hasOwner) {
+    void notifyEntityOwnershipListeners(final DOMEntity entity, final boolean wasOwner, final boolean isOwner,
+            final boolean hasOwner) {
         listenerLock.readLock().lock();
         try {
             Collection<DOMEntityOwnershipListener> listeners = entityTypeListenerMap.get(entity.getType());
@@ -127,8 +130,8 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
         }
     }
 
-    void notifyEntityOwnershipListener(DOMEntity entity, boolean wasOwner, boolean isOwner, boolean hasOwner,
-            DOMEntityOwnershipListener listener) {
+    void notifyEntityOwnershipListener(final DOMEntity entity, final boolean wasOwner, final boolean isOwner,
+            final boolean hasOwner, final DOMEntityOwnershipListener listener) {
         listenerLock.readLock().lock();
         try {
             notifyListeners(entity, wasOwner, isOwner, hasOwner, ImmutableList.of(listenerActorMap.get(listener)));
@@ -137,9 +140,9 @@ class EntityOwnershipListenerSupport extends EntityOwnershipChangePublisher {
         }
     }
 
-    @GuardedBy("listenerLock")
-    private void notifyListeners(DOMEntity entity, boolean wasOwner, boolean isOwner, boolean hasOwner,
-            Collection<ListenerActorRefEntry> listenerEntries) {
+    @Holding("listenerLock")
+    private void notifyListeners(final DOMEntity entity, final boolean wasOwner, final boolean isOwner,
+            final boolean hasOwner, final Collection<ListenerActorRefEntry> listenerEntries) {
         DOMEntityOwnershipChange changed = new DOMEntityOwnershipChange(entity,
                 EntityOwnershipChangeState.from(wasOwner, isOwner, hasOwner), inJeopardy);
         for (ListenerActorRefEntry entry: listenerEntries) {