@Test
  public void testRecoverFromNonPersistentRegion() {
    vm0.invoke(() -> createReplicateRegion(regionName, getDiskDirs(getVMId())));
    vm1.invoke(() -> createReplicateRegion(regionName));

    vm0.invoke(() -> {
      putEntry("A", "B");
      getCache().getRegion(regionName).close();
    });

    vm1.invoke(() -> {
      Throwable thrown = catchThrowable(() -> updateEntry("A", "C"));
      assertThat(thrown).isInstanceOf(PersistentReplicatesOfflineException.class);
    });

    // This should initialize from vm1
    vm0.invoke(() -> {
      createReplicateRegion(regionName, getDiskDirs(getVMId()));
      validateDiskRegionInitializationStats(true);
    });

    vm1.invoke(() -> updateEntry("A", "C"));

    for (VM vm : toArray(vm0, vm1)) {
      vm.invoke(() -> validateEntry("A", "C"));
    }
  }
Tests that a persistent region cannot recover from a non persistent region.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/persistence/PersistentRecoveryOrderDUnitTest.java