@Test // parallel, OrderPolicy.KEY, PartitionedRegion, RegressionTest
  public void testConcurrentParallelAsyncEventQueueSize() {
    vm0.invoke(this::createCache);
    vm1.invoke(this::createCache);

    vm0.invoke(() -> createConcurrentAsyncEventQueue(asyncEventQueueId, new SpyAsyncEventListener(),
        false, 100, 2, 100, OrderPolicy.KEY, true));
    vm1.invoke(() -> createConcurrentAsyncEventQueue(asyncEventQueueId, new SpyAsyncEventListener(),
        false, 100, 2, 100, OrderPolicy.KEY, true));

    vm0.invoke(() -> createPartitionedRegion(partitionedRegionName, asyncEventQueueId, -1, 0, 16));
    vm1.invoke(() -> createPartitionedRegion(partitionedRegionName, asyncEventQueueId, -1, 0, 16));

    vm0.invoke(() -> getInternalGatewaySender().pause());
    vm1.invoke(() -> getInternalGatewaySender().pause());

    vm0.invoke(this::waitForDispatcherToPause);
    vm1.invoke(this::waitForDispatcherToPause);

    vm0.invoke(() -> doPuts(partitionedRegionName, 1000));

    vm0.invoke(() -> await()
        .untilAsserted(() -> assertThat(getAsyncEventQueue().size()).isEqualTo(1000)));
    vm1.invoke(() -> await()
        .untilAsserted(() -> assertThat(getAsyncEventQueue().size()).isEqualTo(1000)));
  }
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