@Test // serial, OrderPolicy.THREAD, ReplicateRegion
  public void testConcurrentSerialAsyncEventQueueWithReplicateRegionAndOrderPolicyThread() {
    vm0.invoke(this::createCache);
    vm1.invoke(this::createCache);
    vm2.invoke(this::createCache);

    vm0.invoke(() -> createConcurrentAsyncEventQueue(asyncEventQueueId, new SpyAsyncEventListener(),
        true, 100, 3, 100, OrderPolicy.THREAD, false));
    vm1.invoke(() -> createConcurrentAsyncEventQueue(asyncEventQueueId, new SpyAsyncEventListener(),
        true, 100, 3, 100, OrderPolicy.THREAD, false));
    vm2.invoke(() -> createConcurrentAsyncEventQueue(asyncEventQueueId, new SpyAsyncEventListener(),
        true, 100, 3, 100, OrderPolicy.THREAD, false));

    vm0.invoke(() -> createReplicateRegion(replicateRegionName, asyncEventQueueId));
    vm1.invoke(() -> createReplicateRegion(replicateRegionName, asyncEventQueueId));
    vm2.invoke(() -> createReplicateRegion(replicateRegionName, asyncEventQueueId));

    vm0.invokeAsync(() -> doPuts(replicateRegionName, 500));
    vm0.invokeAsync(() -> doNextPuts(replicateRegionName, 500, 1000));

    // primary sender
    vm0.invoke(() -> validateAsyncEventListener(1000));

    // secondaries
    vm1.invoke(() -> validateAsyncEventListener(0));
    vm2.invoke(() -> validateAsyncEventListener(0));
  }
Regression test for TRAC #50366: NullPointerException with AsyncEventQueue#size() when number
of dispatchers is more than 1
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java