@Test
  public void testSynchronousProperty() throws InterruptedException {
    System.setProperty(DiskStoreImpl.RECOVER_VALUES_SYNC_PROPERTY_NAME, "true");
    Region region = createRegion();

    putEntries(region, 0, 50, "A");

    cache.close();

    cache = createCache();

    final CountDownLatch suspendRecovery = new CountDownLatch(1);
    DiskStoreObserver.setInstance(new DiskStoreObserver() {

      @Override
      public void beforeAsyncValueRecovery(DiskStoreImpl store) {
        try {
          suspendRecovery.await();
        } catch (InterruptedException e) {
          fail("interrupted");
        }
      }

      @Override
      public void afterAsyncValueRecovery(DiskStoreImpl store) {}
    });
    try {
      region = createRegion();

      checkEntriesInMemory(region, 0, 50, "A", true);
      checkEntries(region, 0, 50, "A");
    } finally {
      suspendRecovery.countDown();
    }
  }
Test to make sure that we create missing krfs when we restart the system.
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionAsyncRecoveryJUnitTest.java