diff --git a/core/store/dist/src/test/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManagerTest.java b/core/store/dist/src/test/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManagerTest.java
index 84fd2cd..118c67a 100644
--- a/core/store/dist/src/test/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManagerTest.java
+++ b/core/store/dist/src/test/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManagerTest.java
@@ -133,8 +133,16 @@
         AtomicReference<String> handlerThreadName = new AtomicReference<>();
         AtomicReference<String> completionThreadName = new AtomicReference<>();
 
+        final CountDownLatch latch = new CountDownLatch(1);
+
         BiFunction<Endpoint, byte[], byte[]> handler = (ep, data) -> {
             handlerThreadName.set(Thread.currentThread().getName());
+            try {
+                latch.await();
+            } catch (InterruptedException e1) {
+                Thread.currentThread().interrupt();
+                fail("InterruptedException");
+            }
             return "hello there".getBytes();
         };
         netty2.registerHandler("test-subject", handler, handlerExecutor);
@@ -146,6 +154,7 @@
         response.whenComplete((r, e) -> {
             completionThreadName.set(Thread.currentThread().getName());
         });
+        latch.countDown();
 
         // Verify that the message was request handling and response completion happens on the correct thread.
         assertTrue(Arrays.equals("hello there".getBytes(), response.join()));
