@Test
  public void testMissingMembers() throws Exception {
    VM memberVM1 = memberVMs[0];
    VM memberVM2 = memberVMs[1];

    createPersistentRegion(memberVM1);
    createPersistentRegion(memberVM2);

    putAnEntry(memberVM1);

    managerVM.invoke("checkForMissingDiskStores", () -> {
      ManagementService service = managementTestRule.getManagementService();
      DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
      PersistentMemberDetails[] missingDiskStores = distributedSystemMXBean.listMissingDiskStores();

      assertThat(missingDiskStores).isEmpty();
    });

    closeCache(memberVM1);

    updateTheEntry(memberVM2, "C");

    closeCache(memberVM2);

    AsyncInvocation<Void> creatingPersistentRegionAsync = createPersistentRegionAsync(memberVM1);

    memberVM1.invoke(() -> GeodeAwaitility.await().until(() -> {
      GemFireCacheImpl cache = (GemFireCacheImpl) managementTestRule.getCache();
      PersistentMemberManager persistentMemberManager = cache.getPersistentMemberManager();
      Map<String, Set<PersistentMemberID>> regions = persistentMemberManager.getWaitingRegions();
      return !regions.isEmpty();
    }));

    assertThat(creatingPersistentRegionAsync.isAlive()).isTrue();

    managerVM.invoke("revokeMissingDiskStore", () -> {
      ManagementService service = managementTestRule.getManagementService();
      DistributedSystemMXBean bean = service.getDistributedSystemMXBean();
      PersistentMemberDetails[] missingDiskStores = bean.listMissingDiskStores();

      assertThat(missingDiskStores).isNotNull().hasSize(1);

      assertThat(bean.revokeMissingDiskStores(missingDiskStores[0].getDiskStoreId())).isTrue();
    });

    creatingPersistentRegionAsync.await(2, MINUTES);

    verifyRecoveryStats(memberVM1, true);

    // Check to make sure we recovered the old value of the entry.
    memberVM1.invoke("check for the entry", () -> {
      Cache cache = managementTestRule.getCache();
      Region region = cache.getRegion(REGION_NAME);
      assertThat(region.get("A")).isEqualTo("B");
    });
  }
Checks the test case of missing disks and revoking them through MemberMXBean interfaces
geode-core/src/distributedTest/java/org/apache/geode/management/DiskManagementDUnitTest.java