@Test
  public void testPRWithRegionDestroyInOneDatastoreWithDelay() throws Exception {
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRAccessorCreate(
        PARTITIONED_REGION_NAME, REDUNDANCY, PortfolioData.class));

    vm1.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PortfolioData.class));
    vm2.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PortfolioData.class));
    vm3.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PortfolioData.class));

    // creating a local region on one of the JVM's
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForLocalRegionCreation(
        LOCAL_REGION_NAME, PortfolioData.class));

    // Putting the data into the accessor node
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(PARTITIONED_REGION_NAME,
        portfolio, START_PORTFOLIO_INDEX, END_PORTFOLIO_INDEX));

    // Putting the same data in the local region created
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(LOCAL_REGION_NAME,
        portfolio, START_PORTFOLIO_INDEX, END_PORTFOLIO_INDEX));

    // Execute query first time. This is to make sure all the buckets are created
    // (lazy bucket creation).
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRQueryAndCompareResults(
        PARTITIONED_REGION_NAME, LOCAL_REGION_NAME));

    // Now execute the query. And while query execution in process destroy the region
    // on one of the node.
    AsyncInvocation<Void> async0 =
        vm0.invokeAsync(prQueryDUnitHelper.getCacheSerializableRunnableForPRQueryAndCompareResults(
            PARTITIONED_REGION_NAME, LOCAL_REGION_NAME));

    Wait.pause(5);

    // skip the use of random and just close region in vm2
    vm2.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForRegionClose(
        PARTITIONED_REGION_NAME, REDUNDANCY, PortfolioData.class));

    async0.await();
  }
1. Creates PR regions across with scope = DACK, one accessor node & 2 datastores <br>
2. Creates a Local region on one of the VM's <br>
3. Puts in the same data both in PR region & the Local Region <br>
4. Queries the data both in local & PR <br>
5. Also calls Region.close() randomly on one of the datastore VM's with delay <br>
6. then recreates the PR on the same VM <br>
7. Verifies the size, type and contents of both the resultSets obtained
geode-core/src/distributedTest/java/org/apache/geode/cache/query/partitioned/PRQueryRegionDestroyedDUnitTest.java