@Test
  public void testConcurrentForceRollingAndGetOperation() {
    DiskRegionProperties p = new DiskRegionProperties();
    p.setMaxOplogSize(1000);
    p.setRegionName(getName() + counter);
    p.setDiskDirs(dirs);
    p.setOverflow(true);
    p.setSynchronous(false);
    p.setOverFlowCapacity(5);
    p.setRolling(true);
    byte[] val = new byte[50];
    region = DiskRegionHelperFactory.getAsyncOverFlowOnlyRegion(cache, p);
    for (int j = 1; j < 101; ++j) {
      region.put("" + j, val);
    }
    Thread t1 = new Thread(() -> {
      for (int i = 0; i < 100; ++i) {
        region.forceRolling();

        try {
          Thread.sleep(TIME_TO_RUN / 100);
        } catch (InterruptedException e) {
          fail("interrupted");
        }
      }
    });
    Thread t2 = new Thread(() -> {
      try {
        for (int i = 0; i < 100; ++i) {
          for (int j = 1; j < 101; ++j) {
            region.get("" + j);

          }
        }
      } catch (Exception e) {
        e.printStackTrace();
        failure = true;
      }
    });
    t1.start();
    t2.start();
    ThreadUtils.join(t1, 30 * 1000);
    ThreadUtils.join(t2, 30 * 1000);
    assertTrue(!failure);
  }
Tests the bug where a get operation on an evicted entry fails to get value as the oplog is
deleted by the roller, but the entry was not rolled.
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ConcurrentRegionOperationsJUnitTest.java