diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
index ef651cb..f75cd48 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/HazelcastLeadershipService.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.Maps;
 import com.hazelcast.config.TopicConfig;
 import com.hazelcast.core.IAtomicLong;
+import com.hazelcast.core.ILock;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -50,7 +51,6 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import java.util.concurrent.locks.Lock;
 import java.util.stream.Collectors;
 
 import static com.google.common.base.Preconditions.checkArgument;
@@ -247,8 +247,8 @@
         // higher if the mastership has changed any times.
         private long myLastLeaderTerm = NO_TERM;
 
-        private NodeId leader;
-        private Lock leaderLock;
+        private volatile NodeId leader;
+        private ILock leaderLock;
         private Future<?> getLockFuture;
         private Future<?> periodicProcessingFuture;
 
@@ -427,6 +427,8 @@
                             long delta = System.currentTimeMillis() -
                                 lastLeadershipUpdateMs;
                             if (delta > LEADERSHIP_REMOTE_TIMEOUT_MS) {
+                                log.debug("Topic {} leader {} booted due to heartbeat timeout",
+                                          topicName, leader);
                                 leadershipEvent = new LeadershipEvent(
                                         LeadershipEvent.Type.LEADER_BOOTED,
                                         new Leadership(topicName, leader, myLastLeaderTerm));
@@ -519,7 +521,9 @@
                                         clusterService.getLocalNode().id(),
                                         LEADERSHIP_EVENT_MESSAGE_SUBJECT,
                                         SERIALIZER.encode(leadershipEvent)));
-                        leaderLock.unlock();
+                        if (leaderLock.isLockedByCurrentThread()) {
+                            leaderLock.unlock();
+                        }
                     }
                 }
             }
